『UTF-8』と『UTF-8N』の違い、それは単純に『BOM』があるかどうか。
『UTF-8N』には『BOM』がないのである。
例えば、保存形式に『UTF-8』しかないエディタであっても、チェックボックス等『BOMを付けない』ことを出来る時点で、『UTF-8N』形式で保存できていることになる。
つまり基本的に『UTF-8N』を選んでおけば安心ということですな。
どういうときに便利かって言われたらの、例えばの話。
windowsは、すぐファイルを『shift-jis』で保存する。
ちょっと気を抜いて軽い気持ちでメモエディタを使ったら、すーぐ『Shift-jis』。
元の形式が何だったかなんて関係なく『Shift-jis』。
そこで保存形式を単純に『UTF-8』変換して保存すると、エディタからは全然見えやしないのに、ひっそりゴミが入っているという。
そういう場合は、表示形式を『shift-jis』で見直すと大概『・ソ』とか入っている。
これが『BOM』である。
実際はこのBOMには『このファイルはunicodeと伝える(先頭3バイト)』(BOM:Byte Order Mark))という立派な機能がある。
だが、こっちからすれば知ったこっちゃない、とんだステルス爆弾(Bomb!)
見えないくせに、そこにあるものだから、コイツがバグを出すことがシバシバ
だって想定されてない余計なものだし…
プログラムコードだと先頭に出さねばならない/usr/bin等パス宣言やらheader宣言が動かなくて、どうした!?となる。
この場合の解決方法が『UTF-8N』で保存するとなるわけだ。
ほぼBOMの憎さ話である…。
コメント