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でファイルを保存する必要があります。また、これが無いと動かないソフト等もあるみたいです。
今さらながらにこの違いがわかりました。
通常、Web系のソフトでUTF-8というと、UTF-8Nのことを指すそうです。
そう言えば、TOPページのヘッダ画像の上に妙な空白がありました。

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

となり、余計な空白は消えました。
以前はEUCだったのをUTF-8に変更した際、漢字コードの変換ソフトで一括変換した時に、UTF-8NではなくUTF-8になってしまってたのでしょう。
ややこしい・・・
2008年07月15日 11:51 | Webシステム
トラックバック
このエントリーのトラックバックURL:



