Archive

Posts Tagged ‘UTF-8’

UTF-8 文字列の URI エスケープ

RFC 2396 で、unreserved として定められた文字列を URI エスケープする場合には、


$str =~ s/([^a-zA-Z0-9_.!~*'()-])/’%’ . unpack(’H2′, $1)/eg;

とすれば良いですが、エスケープする文字列が UTF-8 の場合、注意しないといけないことがあります。それは、変換前に UTF-8 フラグを落とすことです。


utf8::encode($str) if utf8::is_utf8($str);

を変換前に追加しましょう。