2008年07月15日

UTF-8とUTF-8Nの違い

何気に見過ごしていたこの2つですが、どちらもUTF-8には間違いないのですが、UTF-8には、BOMがあり、UTF-8Nにはありません。

BOMとは、このファイルの形式を表すコードでファイルの先頭に付きます。UTF-8の場合、先頭に、EF BB BF (16進)のコードが付加されます。

リダイレクトでうまく動かなかったのは、header()でヘッダを出力する前に、この3バイトが出力されてしまったからです。

このコードは要る時と要らないときがあって、少なくともWebの世界では要りません。なので、UTF-8Nでファイルを保存する必要があります。また、これが無いと動かないソフト等もあるみたいです。

UTF-8 Wikipedia

今さらながらにこの違いがわかりました。

通常、Web系のソフトでUTF-8というと、UTF-8Nのことを指すそうです。


そう言えば、TOPページのヘッダ画像の上に妙な空白がありました。

karakuriya_mae.png

よくよく見てみると、この部分のMTのテンプレートがUTF-8になってました。それで余計なコードは出力さてたのです。
これをUTF-8Nに直して再構築したところ

karakuriya_ato.png

となり、余計な空白は消えました。

以前はEUCだったのをUTF-8に変更した際、漢字コードの変換ソフトで一括変換した時に、UTF-8NではなくUTF-8になってしまってたのでしょう。
ややこしい・・・

2008年07月15日 11:51 | Webシステム


トラックバック

このエントリーのトラックバックURL:

コメント

コメントしてください




保存しますか?