htmlをUTF-8にした場合の注意(IEで画面真っ白)

昔作成したhtmlをUTF-8にした場合、IE6, IE7で画面に表示されず真っ白になる場合がある。どうもtitle要素の文字列がnonASCII(日本語など)の場合、場合によっては文字コードの判定が失敗してしまうようだ。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
  <title>日本語テスト</title>
  <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
  ....

このようになっているのなら、以下のようにmeta要素の順番を入れ替えるとよいみたい。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
  <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
  <title>日本語テスト</title>
  ....

Firefox, Safariなんかでは大丈夫だが、やはり、文字コードの宣言は先に行っておくべし。