UTF-8とUTF-8Nの違い

『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の憎さ話である…。

コメント

タイトルとURLをコピーしました