Sublime Text2 + ConvertToUTF8
はまった
UTF-8で保存してしまったファイルをShift_JISに変換しようとしてはまっている。
変換は秀丸でファイル保存時にエンコーディング変換をしている。
- .cppファイル : 変換可能
- .hファイル : 変換してもASCIIとなり失敗
.hファイルを別の名前の.hファイルにすると Sublime Text2 で開いた時にShift_JISとなるが、元の.hファイルの名前ではASCIIとなる。
Sublime Text2がファイル名に対応するEncoding情報を保持してしまっているのだろうか?
try1
以下の解決策を思いついた。
- 秀丸にて元とは違う.hファイル名で保存 (例: xxx.h)
- xxx.hファイルをSublime Text2で開く -> 文字化けしない
- Sublime Text2のSave As...にて元の.hファイル名で保存
別の名前のファイル名では文字化けしない点を利用。
try2
上記の方法でも文字化けが解消しない時があった。
以下の対応で解決した。
- 秀丸にて元とは違う.hファイル名で保存 (例: xxx.h)
- xxx.hファイルをSublime Text2で開く -> 文字化けしない
- 元ファイルをSublime Text2で開く
- 2で開いたファイルの内容をコピーして(ctrl+C)、3で開いたファイル内に上書き(Ctrl+V)して、ファイル保存する。
try 3
try2でうまくいかない場合、try2の方法の中で以下もやってみる。
[File]-[Set File Encoding to]-[Japanese (Shift_JIS)]
try 4
(追記 2016/02/22)
秀丸を使わなくてもSublime Textで
[File]-[Set File Encoding to]-[Japanese (Shift_JIS)]
をしてSaveするだけでも変更できる場合がある(失敗する場合もある)。
ソースをgitで管理している場合は、とりえあずこれをやってみて、失敗した時には変更を破棄して上記のいずれかを試す、というのがよさそう。