- 締切済み
cgiでの文字化け
配布cgiのHTML出力部分に文字を挿入しようと思い、 「公式ページ」と入力したところ「誤欠【ージ 」 となってしまいました。 そこで色々調べ、ソフトを使い、初めから 「ク・ー・レ。シ・ク」と入力したところ「公式ページ」 と表示され、これは良かったのですが、 他の文字化けする文字を同じようにやったのですが直るものとそうでないものがあります。 どうすればいいでしょうか? あと自分はcgiのソースことは殆ど分からないのですが…
- みんなの回答 (3)
- 専門家の回答
みんなの回答
全く当てずっぽうですが、 「\公式ページ」としてみてうまくいきませんか?
- ralf124c
- ベストアンサー率52% (232/446)
CGIに限らず、文字コードを無視して正常表示できるページ製作を行うことはできません。 CGI出力が、CGIそのものとの文字コードが一致していないために生じている問題です。 CGIがHTMLを出力しているのであれば、ブラウザ側の環境がWindowsの場合<meta>タグでのコード指定がなけれ ばページそのものは「シフトJISコード」で表示しようとします。 通常、CGIファイルは正規表現などの文字列処理をまともに行おうとする場合「EUC」と呼ばれるコードで記 述されることが多いです。 この、不一致状態を打開するためには、 1.CGIがらみはHTMLを含めて「EUC」に統一する。または、文字コードに配慮して製作する。 2.出力HTMLには<META>タグでコンテンツ言語及び文字セットを指定してやるか、HTML先頭にコメントをい れて自動判定可能な全角文字をセットしてやる(古いやり方なので今はもう・・・)。 例: <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> もしも出力が「プレーンテキスト」で出力されるなら、CGI内部でシフトJISに変換して出力してやるのが良い のですが、まともにやっていても環境によってシフトJISは化けやすいので要注意です。 CGIで利用するコードはEUCをおすすめします。(流行りはUTF-8みたいですが・・・) CGIそのものの文字コードを知るにはテキストエディタの文字コード表示させるオプションなどを利用します。 フリーのEmEditorは右下に表示され、シェアの秀丸などは設定でWondowsタイトルバーに表示されます。
- akuhijrwq
- ベストアンサー率35% (381/1064)
お礼
書き込みありがとうございます。 いずれも試してみたのですが無理でした。 元からcgiの中に入っていた文字は文字化けしていないのですが、自分が追加で入力したところは文字化けするようです。