質問: WindowsのコマンドプロンプトからUTF-8でファイルに書き込むことは できないのでしょうか。 コマンドプロンプトから直接実行するとTeraPadでは「Unicode」と 表示されました。 なぜ、バッチファイルからの実行では「SJIS」(日本語があると「UTF-8N」)で コマンドプロンプトからでは「Unicode」になるのでしょうか。 「バッチファイルを作る」または「UTF-8で書き込めるエディタを使う」 の方法で解決はしています。ただ、しっかりわかっておかないと後々困りそうで 質問しました。 バッチファイルsamplewrite.batを作成し、ファイルに書き込みを 行って、TeraPadで開き文字コードを参照すると「SJIS」と表示されました。 samplewrite.bat ``` @echo off chcp 65001 echo 1 > sample.txt echo 2 >> sample.txt echo 3 >> sample.txt ``` 実行 ``` PS C:\Users\hoge .\samplewrite.bat ``` TeraPadでは「SJIS」 ``` set HOGE=ほげ echo %HOGE%>>sample.txt ``` の2行を追加すると を行うと、TeraPadでは「UTF-8N」と表示されました。 同様のことをバッチファイルではなく、コマンドプロンプトから 直接実行するとTeraPadでは「Unicode」と表示されます。 ``` PS C:\Users\hogek> chcp 65001 Active code page: 65001 PS C:\Users\hoge> echo 1 > sample2.txt PS C:\Users\hoge> more .\sample2.txt 1 PS C:\Users\hoge> echo 2 >> sample2.txt PS C:\Users\hoge> echo 3 >> sample2.txt PS C:\Users\hoge> more .\sample2.txt 1 2 3 ``` TeraPadでは「Unicode」
回答: 数字とアルファベット(いわゆる半角文字)は、UTF8もShiftJISも全くコードは同じで、双方判別できません。 TeraPADではとりあえずそういうコードをShiftJISと表示してるんでしょう。