Кириллица в параметрах CGI-запроса

Вопрос: Я хочу реализовать регистрацию своей программы через Internet. Для этого я вызываю CGI-скрипт, которому в качестве параметра передается имя пользователя. Однако, если имя набрано кириллицей, происходит ошибка. В чем дело?

Дело в том, что при передаче запроса по протоколу HTTP служебные символы и символы с кодами 128..255 надо кодировать. То есть, если пользователь ввел имя ‘Вася Пупкин’, то запрос для регистрации должен выглядеть не так:

{codecitation class=»brush: pascal; gutter: false;» width=»500px»}

http://site/cgi-bin/reg.pl?user=Вася Пупкин

{/codecitation}

а вот так:

{codecitation class=»brush: pascal; gutter: false;» width=»500px»}

http://site/cgi-bin/reg.pl?user=%C2%E0%F1%FF+%CF%F3%EF%EA%E8%ED

{/codecitation}

Решить проблему перекодировки туда и обратно может компонент TNMURL.

DK: Дополнительную информацию про кодирование URL’ов, можно прочитать в RFC1738

Добавить комментарий