perlの日本語処理について。


utf8のページに、euc-jpで書かれたCGIへの文字投稿フォームを設置しています。
当然のように文字化けして文字が投稿されてしまいます。

文字を受け取ってeuc-jpに変換して処理すればいいのはなんとなくわかりますが、
文字コードを変換する処理がよくわかりません。
フリーのプログラムで、jcodeを使っているみたいです。

utf8のページからの日本語投稿を、eucjpのプログラムで受け取り、eucjpのページ出力をするには、
どのように変換すれば良いのでしょうか?

参考になるURLやアドバイス頂けると助かります。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2009/09/28 19:19:55
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:TREEG No.1

回答回数255ベストアンサー獲得回数34

ポイント35pt

具体的なCGIがどの様なものか今一分かりませんが、

http://sakaguch.com/utf2.html

は参考になると思います。


下記コードで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

id:onigirin

どうもありがとうございます。

無事解決しました!

2009/09/28 19:19:24

その他の回答1件)

id:TREEG No.1

回答回数255ベストアンサー獲得回数34ここでベストアンサー

ポイント35pt

具体的なCGIがどの様なものか今一分かりませんが、

http://sakaguch.com/utf2.html

は参考になると思います。


下記コードで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

id:onigirin

どうもありがとうございます。

無事解決しました!

2009/09/28 19:19:24
id:lovemaker No.2

回答回数59ベストアンサー獲得回数1

ポイント35pt

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>

id:onigirin

どうもありがとうございます。

モバイルのことも考え、今回はCGIで処理を行ないました。

モバイル以外の時の参考にさせて頂こうと思います。

2009/09/28 19:19:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません