metaタグは、いろいろなメタ情報を付加する。
よく見かけるのは、Content-typeとcharsetの部分。
<html> <head> <title>meta</title> </head> <body> あいうえお </body> </html>
まず、これを、

UTF-8で保存。

当然、文字化けはせず、表示できる。

Shift_JISで保存。

文字化けする。

metaでcharsetにShit_JIS。

あれ?これで治らない・・・。

metaがheadの中なのでbodyには効かないのかと思ってtitleを日本語にした。

関係なかった。
これでリクエスト情報を調べると、

metaのcharsetがShift_JISなのに、Content-TypeがUTF-8になっている。
結局は、Apacheの設定か。

httpd.confの末尾にこれを追加。

これShift-JISですが表示出来てます。
CGIやPHPなら、HTTPヘッダを変えて、そちらで表示できるかもだけど、metaタグでは厳しい。
さっきのApacheの設定変更を元に戻して、
utf8に戻したバージョン。

utf8で保存。

utf8で表示。
一応metaタグでの文字コード指定もつけておいたほうがいいけど、サーバと文字コード合わせないとね。
という感じで終わろうとおもっていたが、もうちょっと探ったら、

ここでUTF-8と定義しているのがみつかったので、

コメントアウトして改めていじってみる。

両方ともUTF-8。

表示できる。


文字化け。

両方Shift_JIS。

表示できる。


文字化け。
というわけで、AddDefaultCharsetがコメントアウトされていれば、metaタグのCharsetでレスポンス返ってくるので、metaタグのcharsetをソースコードのエンコード形式と合わせると表示される。
Sample/html/meta/meta/src/meta at master · bg1bgst333/Sample · GitHub