пятница, 23 января 2009 г.

escape() и Perl

Одноимённые функции escape() в Javascript и Perl символы в utf8 кодируют по разному. Первая представляет символы в формате %uXXXX, вторая - %XX.

Помог пакет URI::Escape::JavaScript, за что большое спасибо Koichi Taniguchi.

К приведённому в документации примеру достаточно добавить только "use encoding 'utf-8'":
use encoding 'utf-8';
use URI::Escape::JavaScript qw(escape unescape);

$string = "\x{3084}\x{306f}\x{308a}\x{539f}\x{56e0}\x{306f} Yapp(ry";
$escaped = escape($string);

$escaped = '%u30B5%u30D6%u30C6%u30AF%u5165%u308A%u305F%u3044%uFF01%uFF01';
$string = unescape($escaped);

Комментариев нет:

Отправить комментарий