検討:
use URI::Escape;
print uri_unescape("%C3%B3");
出力:ó
このhttp://meyerweb.com/eric/tools/dencoder/でデコードします
出力:ó
これは予想されるものです。
正しい出力を得るには、どのPerlライブラリを使用する必要がありますか?
検討:
use URI::Escape;
print uri_unescape("%C3%B3");
出力:ó
このhttp://meyerweb.com/eric/tools/dencoder/でデコードします
出力:ó
これは予想されるものです。
正しい出力を得るには、どのPerlライブラリを使用する必要がありますか?
バイトシーケンスがUTF-8であることがわかっている場合は、次を使用しますEncode::decode
。
use Encode;
use URI::Escape;
my $in = "%C3%B3";
my $text = Encode::decode('utf8', uri_unescape($in));
print length($text); # Should print 1
このコードEncode::decode('utf8', uri_unescape($in))
は私には機能しませんが、次のコードは問題なく機能します。
sub smartdecode {
use URI::Escape qw( uri_unescape );
use utf8;
my $x = my $y = uri_unescape($_[0]);
return $x if utf8::decode($x);
return $y;
}