アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlでcgiのページを作っています。文字コードはEUCです。

最近、IEのバージョンを8から10にアップグレードしたのですが、
自分の作ったページが、たまに文字化けするようになりました。

IE10のエンコード設定は「自動選択」にしていますが、
自動で「西ヨーロッパ言語(ISO)」に判断されてしまいまうことがあります。

Perlのcgiの文字コードはEUCで、ソースには以下のようにEUC-JPを指定しています。

<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">

手でIE10の文字コードをEUCに設定すれば文字化けは直るのですが、
数日経つとまた同じように文字化けで「西ヨーロッパ言語(ISO)」に自動判断されてしまいます。

metaでEUC-JPをしていればブラウザ側で自動判断してくれると思っていたのですが、違うのでしょうか?
HTMLでmeta以外に文字コードを指定するところがあるのでしょうか?

A 回答 (1件)

Webサーバはなんです?



>metaでEUC-JPをしていればブラウザ側で自動判断してくれると思っていたのですが、違うのでしょうか?
>HTMLでmeta以外に文字コードを指定するところがあるのでしょうか?

Webサーバの設定によっては化ける。という例がありますね。
「Apache 文字化け」辺りで検索すると情報が見つかるでしょう。

http://tech.bayashi.net/pdmemo/chara2.html

ってことで……そのCGIはHTTPレスポンスヘッダのContent-typeは出力していますか?
さらに、Content-typeでcharsetを指定していますか?
# charset指定していないとWebサーバのデフォルト設定が使用されるでしょう。おそらく。

この回答への補足

回答ありがとうございます。

レスポンスヘッダは、これを送ってました。
print "Content-type: text/html\n\n";

このように書けばよということですね。これでしばらく様子見てみて、またここで報告します。
print "Content-type: text/html;charset=EUC-JP\n\n";

レスポンスヘッダで文字コード指定できるのは知らなかったです。ありがとうございます。

サーバーはApacheですが、そのサーバーで動くcgiはEUC-JPだけでなくShift-JISのcgiもあるので
設定変更はやめておきます。

補足日時:2014/02/28 13:31
    • good
    • 0
この回答へのお礼

解決しました。
レスポンスヘッダを修正してしばらく様子みてみましたが、文字化けしなくなりました。
ありがとうございました。


【レスポンスヘッダ修正前】
print "Content-type: text/html\n\n";

【レスポンスヘッダ修正後】
print "Content-type: text/html;charset=EUC-JP\n\n";

お礼日時:2014/03/05 09:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!