日々精進

新しく学んだことを書き留めていきます

UTF8ではBOMは非推奨

UTF8ではエンコーディングの最小単位が1バイトなので、エンディアンを気にしなくて良い。 UTF16,UTF32は最小単位が2バイト以上なので、そのバイト列が昇順なのか降順なのかが大事。 Unicode公式ではUTF8ではBOMは付けないことをおすすめされている。

でも、エクセルはBOM無しだと文字化けするんだよなぁ。。エクセル対応のためだけにBOM付けるのいやだ。。 BOMを付けると、pythonでテキストを開くときにencodingをutf_8_sigにしないといけない。。めんどい。。

参考:

stackoverflow.com

http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf

qiita.com

UTF8の中身について書かれていてわかりやすかったです。

qiita.com