Как мне URI экранировать японские символы в Perl?
Необходимо указать, в какой кодировке находятся японские символы.
Если вы используете UTF-8а также используя встроенную в Perl кодировку Unicode, вы можете использовать это:
use utf8;
use URI::Escape qw/uri_escape_utf8/;
my $escaped = uri_escape_utf8 ("チャオ");
Если ваши японские символы кодируются с использованием какого-либо формата, например EUC-JP, Shift-JIS, или других подобных вещей, вам нужноуказать, какой тип экранирования URI вам требуется.Стандартные вещи, такие как
my $escaped = uri_escape ("ハロー");
, дадут вам то, что закодировано в URI, но это не обязательно имеет смысл для другого конца.Например, если вы создаете URL для WWWJDIC, URI для поиска 渮 это для UTF-8:
http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1MMJ%E6%B8%AE
Но для EUC-JP та же страница выглядит так:
http://www.csse.monash.edu.au/~jwb/cgi-bin/wwwjdic.cgi?1MKJ%DE%D1
Perl сделает для вас любой из них, но вы должны точно указать, какова ваша отправная точка.