以前、スクリプトを書くアルバイトをしていたわけだが、何故かUTF-8で保存したもののの中にテキストエディタで自動判別されずにShift-JISで表示しようとするものがあった。どうしてこのようなことが起こるのだろうかとその時は思っていたのだが、どうやらUTF-8のヘッダには0xefbbbfという3バイトのシグネチャがあり、このシグネチャが何らかの理由で消えたものだとわかった。メモ帳はこのUTF-8の先端のシグネチャが無くてもUTF-8であると自動的に判別して表示してくれる機能があり、UTF-8で保存してからバイナリエディタで先端のシグネチャを取り外すとテキストエディタでは開けないのにメモ帳では開ける。ただし、ヘッダがない状態でShift-JISと混在する場合にはShift-JISが優先される。
ログファイルなどを出力するときにこの文字コードの混在が良くないことになってくるわけだが、文字コードを変えて読み直しをすればたいていのテキストエディタで読めるので気にするほどではないかも知れない。ただ、あんまりこの状態で行くと何故か文字化けしていたり、表示されていない文字が結構出てくるので、注意はしていきたい。
※コメント投稿者のブログIDはブログ作成者のみに通知されます