|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 19 Jun 2003 14:50:23 To : Gamid Isayev Subject : Re: How to escape to %uXXXX --------------------------------------------------------------------------------
Gamid Isayev wrote:
> Hачиная с версии 2.76 CGI.pm научился unescape-ить URI с %uXXXX.
> Hо похоже так и не научился escape-ить в %uXXXX (пробовал CGI.pm версии 2.79
> под Perl 5.6.1).
> URI::Escape похоже не умеет ни того, ни другого.
>
> Какие существуют "стандартные" модули которые могут escape-ить Unicode
> (UTF-8) строки в %uXXXX?
>
> Gamid Isayev
>
Боюсь, что никакие, ибо само представление unicode-символа как
%uXXXX есть нестандартное изобретение некой компании выпускающий
некий браузер. RFC2396 (глава 2.1) констатирует неоднозначность
представления не-Latin1 символов в URI, но ничего на этот счет
путнего не рекомендует. Рекомендации комитета W3C для HTML4.01 на
этот счет однозначны - не-Latin1 символы в URL должны быть
преобразованы в UTF-8 после чего получившаяся последовательность
октетов должна быть эскейплена как %XX. Поведение браузеров
передающих в URL эскейпленые символы в иных кодировках объявлено
устаревшим:
http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.2.1
Полезно глянуть также сюда:
http://www.w3.org/International/O-URL-and-ident.html
однако IRI еще не являются стандартом. Есть только черновики.
То есть реализация декодера из %uXXXX формата еще оправдана
как заплатка для исправления ошибки кодирования совершаемой
неким браузером, реализация же подобного кодера там совсем
ни к чему.
--
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/657746485429.html, оценка из 5, голосов 10
|