UTF-8とUTF-8Nの違いでデザインが崩れた

Movable Typeで生成したatom.xmlをphpで読み込み、日付とタイトルにデザインをつけて表示しようとしました。

デザインを入れる前までは問題なく進んだけど、デザインを入れてみると表示が崩れているではありませんか。。。

cssでfloat:leftを指定し、2段組で表示してあげる予定でした。
しかし、右側のdivが1行下がってしまう…。

原因はphp(文字コード:UTF-8)でatom.xml(文字コード:UTF-8N)を読み込み、デザインテンプレート(文字コード:UTF-8)に日付とタイトルをを埋め込み出力(表示)していたため。

phpで出力されているデータ(テンプレート)の先頭にBOM(Byte Order Mark)がつけられ、そのBOMがデザインの崩れを引き起こしていました。

UTF-8とUTF-8Nが混在していました。
すべてのファイルの文字コードをUTF-8Nにすることで解決できました。


問題解決への道のり


  1. 完成予定のソースを(x)htmlに直接記述 → 思い通りに表示される。

  2. phpで表示しソースをコピーし、サクラエディタで表示 → 「・・」のようなコントロールコードが表示された

  3. こんどはTeraPadで表示 → 文字コードがUTF-8Nと認識された

  4. 使用しているファイルを全てUTF-8からUTF-8Nに変更

いつもExpression Webを使用していたので、全く意識していないものでした。
ちなみにサクラエディタと秀丸エディタのUTF-8はUTF-8Nのことのようです。

関連リンク

トラックバック(0)

このブログ記事を参照しているブログ一覧: UTF-8とUTF-8Nの違いでデザインが崩れた

このブログ記事に対するトラックバックURL: http://anytown.jp/admin/mt/mt-tb.cgi/1960

コメントする

このブログ記事について

このページは、エニエニ事務局が2008年12月11日 11:21に書いたブログ記事です。

ひとつ前のブログ記事は「役割の大切さ」です。

次のブログ記事は「ブラウザの画面をキャプチャするFirefoxのアドオン 「Pearl Crescent Page Saver」」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

CSS Nite in SENDAI

dachas