OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

URLエンコードされたデータを戻すには

  • 暇なときにでも
  • 質問No.179955
  • 閲覧数320
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 8% (3/37)

POSTでCGIに渡す文字列はURLエンコードされていて、元に戻すにはデコードが必要ですが、もともとURLエンコードされたデータをデコードしたデータにできないでしょうか。
普通は、
読める文字→URLエンコード→CGIによる処理→URLデコード→読める文字
ですが、
もとのデータがURLエンコードされた状態だと、
URLエンコードされた文字→URLエンコード→CGIによるURLデコード→URLエンコードされた文字
となってしまいます。
たとえば、「%82%a0%82%a0%82%a0」というデータ形式から、「あああ」というデータを得たいのです。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル9

ベストアンサー率 53% (52/98)

$str をエンコードされた文字列とします。 while ($str =~ /%([0-9a-fA-F][0-9a-fA-F])/g ) {  $str =~ s/\+/ /g;  $str =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg; } で、URLエンコードされていると思われる文字列(%+十六進の数字) ...続きを読む
$str をエンコードされた文字列とします。

while ($str =~ /%([0-9a-fA-F][0-9a-fA-F])/g ) {
 $str =~ s/\+/ /g;
 $str =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
}

で、URLエンコードされていると思われる文字列(%+十六進の数字) がなくなるまで
ひたすらデコードしてくれると思います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ