7

検討:

use URI::Escape;
print uri_unescape("%C3%B3");

出力:ó

このhttp://meyerweb.com/eric/tools/dencoder/でデコードします

出力:ó

これは予想されるものです。

正しい出力を得るには、どのPerlライブラリを使用する必要がありますか?

4

3 に答える 3

12

バイトシーケンスが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
于 2012-10-31T18:06:16.637 に答える
0

このコード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;
}

このコードはhttp://lwp.interglacial.com/ch05_02.htmからのものです

于 2014-01-04T17:58:59.923 に答える
0
于 2021-11-28T21:09:06.947 に答える