【PR】 キッチン・ホーム用品もAmazon.co.jp 【PR】 英語・韓国語学習に役立つリンク集 【PR】 シャーロックホームズで楽々英語 【PR】 話題の足裏健康法「樹液シート」 |
||||||
・メタタグによる文字コード指定の有効性
このようにメタタグによる文字コードの指定は明らかに効果がありますが、間違って使われている場合も散見されます。代表的な間違いは、
1.メタタグについて解説した、古いホームページなどは確かにこの書き方を推奨されているケースもありますが、これはcharset=Shift_JISという書き方では、Mozilla2.0(古いバージョンのネットスケープ)などが解釈できないために文字化けを起こすためであるのですが、こんな古いバージョンのネットスケープユーザーは1000人に一人もいません。元々x-sjisは公式的なものではなく、インターネット初期において、バグっているブラウザに合わせて普及した書き方であり、現在では、この書き方は百害あって一利なしです。 2.「1」と全く同じ理由で、「x-euc-jp」も使わない方が良いです。 3.「Shift-JIS」ではなく、「Shift_JIS」です。ハイフンはEUC-JPの場合であり、Shift_JISはアンダーバーを使います。
4.これについては確固たる根拠があるわけではないのですが、例えば、 |
最後の「4」でも書きましたが、メタタグによる文字コードの指定はできるだけ上の方でやった方がよい訳です。もっと言うならHTMLファイルの中で記述しているのでは遅すぎるとも言えます。純然たるHTMLファイルの場合は、どうしようもありませんが、もしperlやPHPを利用されているのならば、是非、自力で文字コードをHTTPヘッダーで指定するべきです。
上記がサンプルコードになります。また、少し話が逸れますが、このようにメタタグで記述するよりHTTPヘッダーで記述した方が良い事例は、文字コードだけではありません。キャッシュ制御のメタタグなどは特にそうです。
(参照)▼[HOWTO] Internet Explorer でキャッシュを無効にする 話を元に戻しますと、文字化け対策としては、メタタグやHTTPヘッダーによる指定のほかに、.htaccessを使った指定方法もあります。 例 AddType "text/html; charset=EUC-JP" html これにより、その.htaccessが影響するディレクトリー内に入っているHTMLファイルは全てEUC-JPですという命令がブラウザに送信されます。この方法はネットスケープ4.Xの文字化けで有効である場合があります。具体例は別の章で説明します。 ただし、この.htaccessを置いているのに、HTMLファイル内で<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS>などと書けば文字化けする可能性大です。ご注意ください。同様に、.htaccessを置いていない場合でも、本当はUTF-8で作成しているのに、メタタグでShift_JISと指定した場合などは当然、化けます。そんな馬鹿なことはしないと多くの人は思うでしょうが、実際にはこの手の失敗は数多く見られます。メタタグの指定ミスがどのような重大事件を起こすかは、「Googleの検索結果サマリーの文字化け」の章をご参照ください。 次のページでは、メタタグではなく「美乳」という文字をヘッダー内で記述すると文字化けが起こりにくいという「神話」の信憑性について検証します。
|