• 締切済み

文字コードの変換

こんばんは。よろしくお願いいたします。 「あ」を文字コードにするとe38182(utf-8) a4a2(euc) 82a0(ShiftJIS) のようになりますが、文字コードから文字を復号(e38182→あ)するには どのようにしたらよいのでしょうか?

みんなの回答

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

おっと、書き忘れ。 ただし、この方法だと [0-9a-f]{2} が含まれていて文字コードでない 部分までデコードされてしまったり、EUC-JPやUTF-8などで一文字が 奇数バイトになる場合に一番最初のコードの先頭に0を付けて偶数 バイトにする必要があるなどの点には気をつけてください。 ・・・あとは、注意点なかったかな。

noname#190095
質問者

お礼

ご回答ありがとうございます。 およそうまく行きました。 もう少しいじくってみたいと思います。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.1

よくあるCGIリクエストクエリのデコード方法をそのまま使用すれば いいのでは。 $val = 'e38182'; $val =~ s/([0-9a-f]{2})/pack('C', hex($1))/egi; print $val; exit;

参考URL:
http://usi.yokkaichi-u.ac.jp/web_tech/perl/decode_url.html