utf8のページに、euc-jpで書かれたCGIへの文字投稿フォームを設置しています。
当然のように文字化けして文字が投稿されてしまいます。
文字を受け取ってeuc-jpに変換して処理すればいいのはなんとなくわかりますが、
文字コードを変換する処理がよくわかりません。
フリーのプログラムで、jcodeを使っているみたいです。
utf8のページからの日本語投稿を、eucjpのプログラムで受け取り、eucjpのページ出力をするには、
どのように変換すれば良いのでしょうか?
参考になるURLやアドバイス頂けると助かります。
具体的なCGIがどの様なものか今一分かりませんが、
は参考になると思います。
下記コードでUTF-8で入力されたものが、EUC-JPで出力されます。
my $utf8_string = "テスト"; #入力はUTF-8
use Encode qw/ from_to /;
from_to ( $utf8_string , 'utf8' , 'euc-jp' );
print $utf8_string; #出力はEUC-JP
具体的なCGIがどの様なものか今一分かりませんが、
は参考になると思います。
下記コードでUTF-8で入力されたものが、EUC-JPで出力されます。
my $utf8_string = "テスト"; #入力はUTF-8
use Encode qw/ from_to /;
from_to ( $utf8_string , 'utf8' , 'euc-jp' );
print $utf8_string; #出力はEUC-JP
どうもありがとうございます。
無事解決しました!
CGI側で処理するより、
JavaScriptで文字コードをEUCにあわせて投稿すれば、
ページの文字コードにかかわらずEUCでポスト可能です。
フォーム側にも「accept-charset="EUC-JP"」をセットしておけばなお可。
この方法はWin/Macのメジャーブラウザで検証済みです。
function cgi_submit() {
// 一時的に文字コードをEUCに
document.charset = "EUC-JP";
// 送信
document.cgi.submit();
// 送信後もとの文字コードに戻す
document.charset = "UTF-8";
}
<form name="cgi" accept-charset="EUC-JP">
<input type="button" onclick="cgi_submit()">
</form>
どうもありがとうございます。
モバイルのことも考え、今回はCGIで処理を行ないました。
モバイル以外の時の参考にさせて頂こうと思います。
どうもありがとうございます。
無事解決しました!