自作cgiのページがIE10で文字化けする
- Perlでcgiのページを作っています。最近、IEのバージョンを8から10にアップグレードしたのですが、自分の作ったページが、たまに文字化けするようになりました。
- IE10のエンコード設定は「自動選択」にしていますが、自動で「西ヨーロッパ言語(ISO)」に判断されてしまいまうことがあります。
- metaでEUC-JPをしていればブラウザ側で自動判断してくれると思っていたのですが、違うのでしょうか?HTMLでmeta以外に文字コードを指定するところがあるのでしょうか?
- ベストアンサー
自作cgiのページがIE10で文字化けする
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以外に文字コードを指定するところがあるのでしょうか?
- workpad30j
- お礼率74% (141/190)
- Perl
- 回答数1
- ありがとう数15
- みんなの回答 (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サーバのデフォルト設定が使用されるでしょう。おそらく。
関連するQ&A
- メール送信後のHTMLが文字化けします
FORMからsendmailを利用してメールを送信し、その結果を「送信できた」、「未入力項目がある」などを出力するHTMLとして出力するcgiを作ったのですがHTML出力が文字化けします。 メールのsubjectやbodyは文字化けせず正常に送信できます。HTMLにはMETAタグでeuc-jpやshift_jisと色々とトライしました。cgiもshift_jisとeuc-jp両方で試しましたがどちらも文字化けします。文字化けしているときにブラウザのエンコードで自動選択すると、ブラウザがcgiの使用コードに自動的に合わせてくれて正常に表示してくれますがこれがcgiを起動するたびで面倒です。エンコードを自動選択しないと文字化けしてそのときのブラウザが選択している文字コードは「西ヨーロッパ言語(ISO)です。 どうしたらブラウザに使用している文字コードを認識させるられるでしょうか?
- ベストアンサー
- CGI
- 文字化けの防止法
ネット上のサイトから、特定の情報を取り出し、その情報のファイルを作成し、保存するというプログラムを作っています。 取得するサイトの文字コードは、 <meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp"> と指定されていました。 IEでこのページを開くと、エンコードは自動選択で「EUC」になっていました。 さて、php_editor の文字コードを「UTF-8」に指定し、プログラムを作成しているのですが、 全角文字の含まれた文字列を取得し、表示させようとすると、文字化けしてしまいます。 (このときの表示画面は、http://localhost/~です) 設定を変更していると、IE(http://localhost/~)の表示の文字化けも進み、そのときのIEの エンコードを確認すると、中国語系や西ヨーロッパ系のものになっていることがありました。 文字化けさせない手順や、設定はどのように行えばいいのでしょうか?
- ベストアンサー
- PHP
- 文字コードEUCのPerlプログラムが文字化けしてしまいます
Perlで書かれたCGIを実行しようとしているのですが、プログラムはEUCで記述されているそうです。nkf -g ***とするとEUC-JPとなります。 print " <META http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\n"; とも記述されているのですが、ブラウザで実行(閲覧)すると文字化けして、ブラウザのエンコードは、Unicode(UTF-8)になっています。 ちなみに、OSはCentOS5.2です。 どうやったら、EUCで記述されたCGIが文字化けせずに実行できるのでしょうか? teratermでサーバに接続語、viコマンドで表示しても文字化けしています。ファイルの文字コードをEUCからUTF-8にして(nkf -w ***)、ブラウザでアクセスしても文字化けしてしまいます。
- ベストアンサー
- Perl
- Apacheを使うとHTMLが文字化けします
Apacheを使ってCGIの勉強をしていますが、euc-jpで 書かれたHTMLのファイルをIEで開くとちゃんと読める のにhttp://localhost/*.htmlとして開くと文字化けします。 エンコーディングが勝手に西ヨーロッパ言語になってしまうんです。 METAタグに文字コードを記述してもダメなようです。 一応ファイル名を*.html.jaとすれば読めるようになる のですが、*.htmlのままで読める方法ってないのでしょうか? Apacheのconfigurationのファイルをいろいろいじって みましたがよくわかりません。 どなたかApacheに詳しい方、教えてください! ちなみに、バージョンは2.0.49です。
- ベストアンサー
- HTML
- 文字化け
下記のようなcgiスクリプトがあり、test1.cgi から リンクの test2.cgiを呼ぶと 「リンドウ」が文字化けしてしまいます。 文字化けしないようにするには、どうしたらいいでしょうか。 Perl cgi 初心者です。 --------test1.cgi----------------------------------------- #!/usr/bin/perl print "Content-Type: text/html; charset=EUC-JP\n\n"; $name="リンドウ"; print "name=$name<br>"; print "<a href=\"test2.cgi?aaa,${name},bbb\">test2.cgi</a>\n"; ---------test2.cgi------------------------------------------------- #!/usr/bin/perl print "Content-type: text/html; charset=EUC_JP\n\n"; $query = $ENV{'QUERY_STRING'}; print "query=$query\n";
- ベストアンサー
- CGI
- HTMLのソースの文字化けを防ぐ方法
Win2000とIE6.0の環境であるサイトを開き →エンコード→「自動選択」、もしくは 「日本語(EUC)」 →ソースの表示 とやっても文字化けします。 文字化けしないようにソースを開きたいです。 この問題について対処法が分かる方がおりましたら、お返事頂ければ嬉しいです。 ちなみに、開いたソースの <META http-equiv=Content-Type content="text/html; charset=EUC-JP"> は読み取れます。
- ベストアンサー
- HTML
- HTML・PHPの文字化け
こんにちは。 PHPとMySQLを使ってショッピングカートを作ろうと思ったのですが、しょっぱなから躓いてしまいました・・・。 index.htmlでメタを <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> とeuc-jpにしたのですが、サーバーにアップすると文字化けしてしまいます。 表示のエンコードで確認するとシフトーJisになっています。eucにするとちゃんと表示されるのですが、更新するとやはり文字化けします。PHP・MySQLがeucですので、困っています。 どうにか対処方法はないでしょうか?ご教授をよろしくお願いします。
- ベストアンサー
- HTML
- 「塙」と言う文字が文字化けしてしまう
表題の件で質問させて下さい。 PHPで文字コードをEUCにしたwebアプリケーションを構築しております。 特に何の問題もなく動いていたと思っていたのですが、フォーム等で「塙」と言う文字を入力して、submitした値を表示させると文字化けしてしまいます。 これを表示させるには、どのような対処を行えば良いのでしょうか? いろいろと試してみた結果、 「塙あ」のように、後ろに全角文字が入るとキチンと文字化けせずに表示されるのは確認しました。 (「塙1」のように後ろに半角文字があると「?1」になってしまいます) どなたか対策をご存知の方、いらっしゃいましたらご教授お願いします。 下記の対策は行っています。 ・header("Content-type: text/html; charset=EUC-JP"); ・<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> ・ファイルをEUC-JPで保存
- ベストアンサー
- PHP
- ウェブサイトが文字化けします
知り合いのウェブサイトのことで質問させていただきます。 サーバーがアメリカにあり、アップデートはネット上で行うアメリカのウェブ作成ツール(詳しくは聞いてないのですが)というのを利用しているらしいのですが、今までデフォルトで普通に日本語が表示されていたのに、1週間ほど前から文字化けするようになりました。 ブラウザでエンコードをすれば元に戻るのですが、しないと化けています。 ちなみにIEで見たときは「西ヨーロッパ言語」になっていて、「日本語-自動選択」にエンコードして正しく表示されました。 Firefoxでは「西欧」になっていて「日本語-Shift-JIS」にしたら直りました。 htmlソースに <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> と書かれていたので、charsetをShift-JISとISO-2022-JPとに変えてみてもらったのですが、全然なおりません。 どうしたら文字化けしなくなりますか? もちろんこれは私のPCでのみ起こっている現象ではなく、どこで見てもそうなっています。 ご助言お願いいたします。
- ベストアンサー
- その他(インターネット接続・通信)
- 文字化けについて
お世話になっております。 文字化けに関して対策方法が分からず困っております。 というのも、当方で作成したスクリプト(EUCで記述し、開発環境のmbstring.http_outputもEUC)があるのですが、このスクリプトを知人が借りているレンタルサーバーにアップさせると、文字化けしてしまう現象が起きています。(他のサーバーにもアップしてテストしているが文字化けは初めて) このスクリプト、全て単体で動かすためのものですが、html部の <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> これくらいしか、文字コードの指定はしていませんが、これだけでは不足なのでしょうか? 以上、些か漠然とした質問ではありますが、今回の文字化けする原因など、考えられる要因など御座いましたらどんな些細なことでも結構です。アドバイスのほど頂戴出来れば幸いです。宜しくお願いいたします。
- ベストアンサー
- PHP
お礼
解決しました。 レスポンスヘッダを修正してしばらく様子みてみましたが、文字化けしなくなりました。 ありがとうございました。 【レスポンスヘッダ修正前】 print "Content-type: text/html\n\n"; 【レスポンスヘッダ修正後】 print "Content-type: text/html;charset=EUC-JP\n\n";
補足
回答ありがとうございます。 レスポンスヘッダは、これを送ってました。 print "Content-type: text/html\n\n"; このように書けばよということですね。これでしばらく様子見てみて、またここで報告します。 print "Content-type: text/html;charset=EUC-JP\n\n"; レスポンスヘッダで文字コード指定できるのは知らなかったです。ありがとうございます。 サーバーはApacheですが、そのサーバーで動くcgiはEUC-JPだけでなくShift-JISのcgiもあるので 設定変更はやめておきます。