%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A
これを
あいうえお
に変換するには、どのようにデコードすればいいのでしょうか?
ご教授お願いします。m(_ _)m
[現在のソース]
$buffer = $ENV{'QUERY_STRING'};
@pairs = split(/&/,$buffer);
foreach $pair (@pairs){
($name, $value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
my $value = Jcode::convert($value, 'utf8');
$FORM{$name} = $value;
}
↓
「縺ゅ>縺・∴縺・」が検出されます。
No.1
- 回答日時:
encode.pm を利用します。
encode.pm と言うモジュールがあります。これを利用すると変換することができます。
http://digit.que.ne.jp/work/index.cgi?Encode
に具体的な使い方が掲載されています。参考になると思います。
No.2
- 回答日時:
#1 です。
デコード部分だけですが。参考にしてください。
use Encode;
$data = "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A";
$data = encode("sjis", decode("utf8", penc2bin($data)));
print $data;
exit(0);
sub penc2bin {
my($d) = @_;
my($i, $r);
for ($i = 0; $i <= length($d)-1; $i+=3) {
$r .= pack("C", hex(substr($d, $i+1, 2)));
}
($r);
}
No.3
- 回答日時:
#1 です。
初期化を忘れました(^^;)use Encode;
$data = "%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A";
$data = encode("sjis", decode("utf8", penc2bin($data)));
print $data;
exit(0);
sub penc2bin {
my($d) = @_;
my($i, $r);
$r = '';
for ($i = 0; $i <= length($d)-1; $i+=3) {
$r .= pack("C", hex(substr($d, $i+1, 2)));
}
($r);
}
Perlのバージョンが少し古くて(5.6.1)、Encode.pm(5.7.3以上)がインストールできませんでした。(;-;)
しかし勉強になりました。
ありがとうございました。
No.4ベストアンサー
- 回答日時:
my $value = Jcode::convert($value, 'utf8');
の、Jcodeの使い方が違いますね。
("my"はいらないような気がする)
Jcode::convert($str, [$ocode, $icode, $opt]);
ですから、
eucに変換したければ
$value = Jcode::convert($value, 'euc', 'utf8');
です。
参考URL:http://openlab.ring.gr.jp/Jcode/Jcode.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- 工学 都市ガスの燃焼速度 3 2022/08/03 12:59
- その他(ネットショッピング・通販・ECサイト) このサイトは詐欺サイトですか? 2 2022/10/11 00:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- ノンジャンルトーク スイカに、何かかけますか? 3 2022/06/13 10:25
- Windows 10 win11 日本語を入力するとアプリが消える 1 2022/11/22 19:34
- 戦争・テロ・デモ 著書「第三次世界大戦はもう始まっている」 1 2022/09/28 21:46
- 英語 "dozen"以外の数の単位が名詞を修飾する場合の"of"の必要性とその理由について 3 2023/04/29 16:03
- その他(プログラミング・Web制作) 「複数行の行頭に同じテキストを挿入」をVimのコマンドモードで行う方法について 3 2022/10/19 13:23
- 英語 提示文のif節の用法について(senario if節) 6 2023/07/31 10:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonエラー
-
MIMEでエンコードされたMailのS...
-
標準入力からのutf-8→euc-jpで...
-
メール(iso-2022-jp-2)のデコ...
-
CSVファイルの中で、「 , 」カ...
-
VBA EXCEL あるセルの中の一...
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
パイソンエラーについて
-
エクセルで数値を全角文字(カ...
-
英数字のみ全角から半角に変換
-
GoogleAppsScript文字列置換の...
-
バッチファイルの正規表現を利...
-
マクロを使ってフォルダー内に...
-
パス区切りの文字について
-
CString から LPCTSTRの型に変換
-
「何とかで始まり、何とかで終...
-
VBA Shift-JISをJISに変換する...
-
全角入力
-
カンマ区切りの数字をCSVフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonエラー
-
BASP21によるbase64のデコード...
-
Perl:ファイル名だけ文字化けする
-
「繝・せ繝・」となる文字化け
-
MIMEでエンコードされたMailのS...
-
jcode.pmでconvertできない
-
1つのサイトで文字コードが混在...
-
Encode.pmで文字コードの判別
-
メール(iso-2022-jp-2)のデコ...
-
URLエンコードされたデータを戻...
-
jisコードで16進数の『3c』か...
-
perlの日本語文字コードはどう...
-
CGIでメールを送る際に文字...
-
CASLIIの数値データ入出力
-
文字コードについて
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
おすすめ情報