
前提
あくまでも『文字コードを変更する』処理の事であって
他の処理については本件別
そこは、別で考えてください。
結論
Visual Studio Code(Mac版)は
macOSのファイルシステムの『リソースフォーク』部分に含まれる
アトリビュート 拡張属性に含まれる値
特にファイルと文字コードを関連付けている
com.apple.TextEncoding の値を参照・編集・保存・廃棄していないので
Visual Studio Code(Mac版に限る)で
文字コードの変更をすると、トラブルの原因になる可能性が高い
運用
最初から最後までVSCODEで処理編集する場合は問題ない
複数のアプリケーションを横断的に利用している中に
VSCODEが入っている場合は、少し注意が必要な程度
文字コードを変更しなければ、問題が発生することも少ないため
気を付ける程度でも構わないかもしれない
使用ツール
Visual Studio Code LINK
CotEditor LINK
テキストエディト(OS標準)
xattred LINK
(macOS固有の拡張属性(extended attribute)を参照・変更できるツール)
検証手順
1:CotEditorとTextEditでUTF16のテキストファイルを作成する
2:Visual Studio Codeで1で作成したテキストを開き
3:Visual Studio Codeで文字コードをUTF8に変更して
4:Visual Studio Codeで上書き保存する
5:xattredで拡張属性を確認する
6:4で保存したファイルをCotEditorとTextEditで開いてみる
6の結果を確認する
1:CotEditorとTextEditでUTF16のテキストファイルを作成する
![]() |
CotEditorとTextEditでUTF16のテキストファイルを作成する |
2:Visual Studio Codeで1で作成したテキストを開き
![]() |
Visual Studio Codeで1で作成したテキストを開き |
3:Visual Studio Codeで文字コードをUTF8に変更して
![]() |
Visual Studio Codeで文字コードをUTF8に変更して |
4:Visual Studio Codeで上書き保存する
![]() |
Visual Studio Codeで上書き保存する |
5:xattredで拡張属性を確認する
![]() |
xattredで拡張属性を確認する |
ファイルのリソースフォーク部分の拡張属性の部分をVsCodeが変更しないので
macOSと『しては』このファイルは、UTF16エンコードと認識している
6:4で保存したファイルをCotEditorとTextEditで開いてみる
両方のアプリケーションともに
UTF8のファイルだが
com.apple.TextEncodingの値がUTF16ファイルである事を
示しているので
アプリケーションはこのテキストはUTF16である
と
『信じて』開いている
なので
UTF8のテキストをUTF16として見なした場合のモジバケになっている
美しい日本語
の
美の文字は
ユニコード:U+7F8E
UTF8:E7 BE 8E
テキストエディットの解釈
ユニコードのBE8Eを
U+BEE7
EB BB A7
のUTF16と誤解釈して表示しています
美のUTF8コードの先頭E7 BE を UTF16のBEE7と解釈している(たぶん)
CotEditorの解釈
美のUTF8コードの先頭E7 BE
そのままUTF16でE7BEと解釈している(たぶん)






