読者です 読者をやめる 読者になる 読者になる

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

はじめに

最近は本当にVBネタが無くて困っている弊社です。 かといってF#が出来るほど関数型に精通している訳では無く、Javaは最近はご無沙汰しているので正直何を書けばいいかわからないです。

なので、この前たまたま見つけたSublime Textの仕様?バグ?について軽く触れます。

BOMとWindows-1252

と言っても弊社はIDE派なのでSublimeはほとんど使っていません。 たまに軽くテキストを編集するくらいですね。 どちらかというといわゆるWeb系の方々が使う印象がとても強いです。

話が脱線しましたが、結論を述べますと

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:なにかやり方があるのかもしれませんが、わかりませんでした