人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

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

●質問者: onigirin
●カテゴリ:ウェブ制作
✍キーワード:EUC-JP Perl アドバイス フリー プログラム
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● TREEG
●35ポイント ベストアンサー

具体的な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

◎質問者からの返答

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

無事解決しました!


2 ● lovemaker
●35ポイント

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で処理を行ないました。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ