metaタグは、いろいろなメタ情報を付加する。
<meta> - メタ - とほほのWWW入門
よく見かけるのは、Content-typeとcharsetの部分。
<html>
<head>
<title>meta</title>
</head>
<body>
あいうえお
</body>
</html>
まず、これを、
UTF-8で保存。
当然、文字化けはせず、表示できる。
Shift_JISで保存。
文字化けする。
metaでcharsetにShit_JIS。
あれ?これで治らない・・・。
metaがheadの中なのでbodyには効かないのかと思ってtitleを日本語にした。
関係なかった。
W3C I18n Checker
これでリクエスト情報を調べると、
metaのcharsetがShift_JISなのに、Content-TypeがUTF-8になっている。
HTTPヘッダのメタ情報
結局は、Apacheの設定か。
httpd.confの末尾にこれを追加。
これShift-JISですが表示出来てます。
CGIやPHPなら、HTTPヘッダを変えて、そちらで表示できるかもだけど、metaタグでは厳しい。
さっきのApacheの設定変更を元に戻して、
utf8に戻したバージョン。
utf8で保存。
utf8で表示。
一応metaタグでの文字コード指定もつけておいたほうがいいけど、サーバと文字コード合わせないとね。
という感じで終わろうとおもっていたが、もうちょっと探ったら、
ここでUTF-8と定義しているのがみつかったので、
コメントアウトして改めていじってみる。
両方ともUTF-8。
表示できる。
ファイルエンコードをShift_JISにする。
文字化け。
両方Shift_JIS。
表示できる。
ファイルエンコードをUTF-8にする。
文字化け。
というわけで、AddDefaultCharsetがコメントアウトされていれば、metaタグのCharsetでレスポンス返ってくるので、metaタグのcharsetをソースコードのエンコード形式と合わせると表示される。
Sample/html/meta/meta/src/meta at master · bg1bgst333/Sample · GitHub