• ベストアンサー

CGIで作ったHTMLの文字化けについて

CGIのヘッダを "Content-type: text/html\n\n" として、HTMLをブラウザに出力するcgiを作っているのですが、 「表示」という文字が「侮ヲ」と文字化けしてしまいます。 HTMLの<head></head>内には print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=shift-jis\">"; と記述して日本語を指定しています。 文字化けの原因がまったくわかりません。 心当たりありませんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • the845t
  • ベストアンサー率33% (246/743)
回答No.3

シフトJISの場合、「表\示」としないと文字化けしますね。 EUCで書くと化けないので楽かと思います。 http://www.kent-web.com/pubc/jcode/ が、参考になると思います。

参考URL:
http://www.kent-web.com/pubc/jcode/
noname#10831
質問者

お礼

回答ありがとうございます。 指定されたURL拝見しました。 参考になりました。 「表\示」という記述で問題は解決しました。 的確な回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • FM-8
  • ベストアンサー率39% (65/164)
回答No.2

あまりくわしく調べてませんので, 間違ってたらご容赦を. 文字コードというのは,大きくは  シフトJIS EUC を見分けるためのものです. 「表示」が化ける場合というのは,ほかにもあります. エスケープシーケンスといいまして, 「\」コードの問題かもしれません. 「表」という感じには,半角の「\」のコードが含まれているのです.Cのコンパイラでは,「\」のコードは特別の意味があり,文字列として「表」を与えたつもりでも,エスケープシーケンスとして処理されている可能性もあります. つまりですね,まずは,CGIの出力しているというHTMLソースコード を普通にテキストエディタで見ることが出来ますか? というを一度確認されてはいかがでしょうか. HTMLの問題なのか,「エスケープシーケンス」の問題なのかを切り分けてみては. 例えば秀丸エディタでは,EUCコードとS-JISコードを 自動判別して,ただしく表示してくれます. また,S-JISコードなら,たいていのwindows付属のエディタでただしく表示されるはずです.

noname#10831
質問者

お礼

回答ありがとうございます。 エスケープシーケンスが含まれていると上手く表示されないんですね。 まず問題を振り分けてみなければいけないのですね。

すると、全ての回答が全文表示されます。
  • 918BG
  • ベストアンサー率48% (476/984)
回答No.1

charset=shift_jis と、アンダースコア(アンダーバー)を使う必要があるという事かな? 外してたらご容赦下さい。

noname#10831
質問者

お礼

回答ありがとうございます ほんとだ・・ アンダーバーにするべきですね 気づきませんでした

すると、全ての回答が全文表示されます。

専門家に質問してみよう