Perl и кодировка входных параметров (что делать с значениями типа %E9%F6%F3%EA%E5%ED?)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

grub
Сообщения: 128
ОС: Slackware 12.0

Perl и кодировка входных параметров

Сообщение grub »

Вобщем есть CGI на апаче, пользователь заполняет форму и ее поля передаются в скрипт на Perl. Там разбирается по параметрам и обрабатывается. Пока значения на чистом английском, и без всяких ":" и "\" то все нормально. Но когда приходится вводить кирилицу то приходят параметры типа:

username=grub&newsname=grub&newsaddr=http%3A%2F%2Fwww.srv&newstext=%E9%F6%F3%EA%E5%ED

Я смутно помню что читал про такое представление. Догадываюсь, что в последствии придется использовать Text::iconv (поскольку есть пользователи b Win и Linux, соответственно в строке может быть и 1251 и koi8 и utf8), но как из этих %E9%F6%F3%EA%E5%ED получить исходную строку в 1251, koi8 или utf8 так как ее вводил юзер?

Для справки %E9%F6%F3%EA%E5%ED равно йцукен из винды...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Perl и кодировка входных параметров

Сообщение sash-kan »

есть нужные функции и в модуле URI::Escape, и в Apache::Util, и, скорее всего, еще в нескольких местах.
http://www.google.com/linux?hl=en&q=pe...de+OR+escape%29
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: