У меня есть скрипт cgi, извлекающий поисковые запросы из формы HTML через CGI::Ajax
. При запуске Encode::Detect::Detector
над полученной строкой в моем скрипте, вместо UTF-8, я получаю различные кодировки в зависимости от символов, введенных в форму: греческие символы отображаются как UTF-8
, умлаут как windows-1252
и вообще нет вывода для символов ASCII. Я вполне уверен, что проблема заключается в том, что CGI::Ajax
делает со строкой, которую он передает Perl. Он использует decodeURI()
где-то в своем коде, я пробовал URI::Escape
и Encode
во всех возможных перестановках, но ни одна из моих попыток нормализовать различные строки для одной кодировки не была успешной. Как таковой, тот или иной набор не-ASCII символов (умляутов или греков) всегда будет искажен. Как мне сказать, чтобы Ajax оставил Unicode?