BOM は Bomb?
2008.11.12
仕事で相手先から送られてきたデータが、
おっと UTF-16 だ!
ということがありました。某ソフトでのデータの吐き出しが、そのままだと UTF-16 だったようで、別にオペレータが意図したことじゃなかったようですが....
UTF-16 だと意外にもてあまします。
- 1. テキストフィルターで加工する時、ASCII に「見える」ものも、2byte だということを考慮すべき。
- 2. で...BOM はどうしよう?
と、UTF-16 のままだとどうにもこうにも
テキストとしての機動性が悪い....
と、やはり UTF-8 に変換するのが吉のようです。
まあ私は UNIX 育ちですから、
テキストの先頭に「文書じゃない内容(BOM)」が入っている....
というのはハッキリ気持ちが悪いです。テキストはストリームで扱える単なる
無構造のデータ
であって、「テキストの形式」を強制されるべきではない、というのは実は「UNIX哲学」の一部なのです(言い換えるとホントは cat しても BOMがテキストストリームに現れないのが正解、ということかな)。ですから、たとえばこういう時、うっかりしますよ!
- #! で始まるシェルスクリプトを書いたとき、その前に BOM が入っていて、スクリプトだと理解してもらえなかった!
- XML の先頭に BOM が入っていて、それを理解しないパーサで解析してコケることがあるそうな....(XMLの先頭にBOMが入ってるのは規格違反ではない)
- ソースファイルの先頭に BOM が入っていて、コンパイラがそれをご親切に文法違反にしてくれるとか(gcc さえ文法違反みたいですね)。
と、意外に問題含みなものだったりします。ふう....まあ「BOM が必要」なコンテキストというのは単に
今が移行期だから
ということであるに過ぎません。とっととこういうものは要らなくなるようになってほしいですね。
投稿者 : 杉浦 こずえ | 投稿日時 : 2008.11.12 17:30
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





