URIエンコード/デコード

CGIやAjaxなどで、日本語のエンコード/デコードをする機会がしばしばありますよね。
こちらは、「ちょっとテストデータを作りたい」という時に使うためのページです。










コピペ用メモ

○Perl… 文字列⇒%xx%xx(エンコード)
$str =~ s/(\W)/'%' . unpack("H2", $1)/eg;
$str =~ tr/ /+/;

○Perl… %xx%xx⇒文字列(デコード)
$str =~ tr/+/ /;
$str =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("H2", $1)/eg;

○Perl… 文字コード変換 (jcode.pl / JCODE.pm)
require "./jcode.pl";
&jcode::convert(\$str, "utf-8", "sjis");
  または
use Jcode;
Jcode::convert(\$str, "utf-8", "sjis");

※前者が変換したい文字コード、後者が変換前の文字コード(省略可)。sjis/jis/euc/utf-8

○JavaScript… 文字列⇒%xx%xx(エンコード)※UTF-8でエンコードされます
encodeURI(str)
 または
encodeURIComponent(str)

○JavaScript… %xx%xx⇒文字列(デコード)
decodeURI(str)
 または
decodeURIComponent(str)

○JavaScript… encodeURIがエスケープしない文字
/ ? : @ & = + $ ,
半角英数字 # - _ . ! ~ * ' ( )

○JavaScript… encodeURIComponentがエスケープしない文字
半角英数字 # - _ . ! ~ * ' ( )