Sublime TextでもWindows-1252でテキストファイルを開きたい

はじめに

この前たまたま見つけたSublime Textの仕様?バグ?についてです。

BOMとWindows-1252

結論を述べますと

Windows-1252でエンコードされているテキストの先頭に『』を置くと、その後にどんな文字が来ようとUTF-8として認識する。 さらに、メニューから明示的にWindows-1252で開き直すように指示してもガン無視する。

って事です。以上です。

まぁ、BOMがそもそもそのテキストがUTF-8エンコードされている事を表す符号なんで、挙動としては誤っていません。 そもそも、フツーに考えてまともな内容のテキストで先頭に『』を配置するって事自体がまずありえません。

が、明示的に指示した場合はWindows-1252で開いてくれたっていいじゃないですか。*1

おまけでUTF-16

『ÿþS0“0k0a0o0』という内容でエンコードWindows-1252を指定して保存して開き直すと、UTF-16LEとして認識されて『こんにちは』という内容が表示されます。

こちらの場合もいくらメニューからWindows-1252で開けと指示してもやっぱりガン無視されます。

まとめ

ちなみに根本的な解決方法はわかりませんでした。

なので、解決方法としましてはWindows-1252でテキストを保存するときは、テキストの先頭にUTFのBOMを表すような文字列を置かないようにしよう。そもそもUTF-8で保存しよう。 ってくらいですかね。

おわり

*1:なにかやり方があるのかもしれませんが、わかりませんでした