こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

文字コードsjisをUTF8に書き換えたい

CGIの勉強中の者です。
文字コードはSJISで保存しているCGIをUTF8コードに換えるには何が必要でしょうか?
HTMLならmeta内をSJISからUTF8に変更し、TeraPadなどのテキストエディタでUTF8に保存すればオッケーなんですが。
CGIの場合はHTMLと違って、換えるには複雑なのでしょうか?

CGIプログラムの中では以下の「sjis」を「UTF8」に書き換えし、UTF8で保存しましたけど、文字化けが出てます。
<meta http-equiv="Content-Type" content="text/html;charset=shift_jis">
&jcode'h2z_sjis(*contenido)
&jcode'convert(*subject,'sjis');
&jcode'convert(*infor,'sjis');
&jcode'convert(*contenido,'jis');
&jcode'convert(*res_msg,'jis');
print "Content-type: text/html;charset=shift_jis\n\n";

宜しくお願いします。

投稿日時 - 2009-06-12 16:12:55

QNo.5038084

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

1行目の最期のほう、
charset=shift_jis
を、
charset=UTF-8

に書き換えればOKです。
そこは、「この文書のエンコーディングはxxです」と宣言している部分なので。
ここを見て、システムはエンコーディングを決定します。
UTF-8に保存しても、そこがshift_jisのままだと、shift_jisだと思って処理してしまいます。

投稿日時 - 2009-06-12 16:29:21

補足

返答をありがとうございます。
charset=shift_jis
を、
charset=UTF-8
に書き換えたらメールフォームの送信はできました。(今までは名前が未記入とエラーがでました。&jcode'h2z_sjis(*contenido) 以下は変更してません)
しかし、メールの内容は文字化けになっておりました。
それで「Jcode.pm」をアップロードし、CGIに「require './Jcode.pm'; 」と記入しましたら、今度は500エラーになりました。
どこが間違っておりますでしょうか?
宜しくお願いします。

投稿日時 - 2009-06-12 23:04:14

ANo.1

jcode.plはUTF8には対応していません。
Jcode.pmを使いましょう。

投稿日時 - 2009-06-12 16:26:18

あなたにオススメの質問