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

PerlでUTF8でURLデコードするにはどうしたら良いでしょうか?

ネットで紹介されていた下記コードを実行すると、文字化けしてしまいます。
どうやらS-jisでデコードしてしまっているようです。

<前提>
"テスト" をUTF8でURLエンコードすると "%83e%83X%83g" となる。
この "%83e%83X%83g" を "テスト" に戻すコードが知りたい。
下記コードだと文字化けして "鄙サ險ウ莨夂、セ" となってしまう。

<現在のコード>
$str = "%83e%83X%83g";
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
print($str);


●質問者: tetlis
●カテゴリ:コンピュータ インターネット
✍キーワード:FA H2 Perl print S-JIS
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● taku_j_7

Perlであればエンコードモジュールのencode_utf8を使えばうまくいきます。

http://yumi-ii.squares.net/archives/2005/06/20050615223634.php


ご存じだとは思いますが、テストフォームもありますので、

エンコード・デコードの関連性を再認識するのも良いかもしれません。

http://www.tagindex.com/tool/url.html

◎質問者からの返答

このサイトも見てわからなかったので質問しています。

もう少し具体的にお願いします。

実際、このサイトのまとめにあるコードを実行しても、

「Wide character in ?」と出て文字化けしてしまいます。

関連質問


●質問をもっと探す●



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