Кодировка Perl CGI.pm - неправильная кодировка для "ě" - PullRequest
2 голосов
/ 25 января 2012

У меня есть простая веб-страница, которая использует CGI.pm. Вот что я делаю:

  1. когда я вызываю любую perl-функцию CGI.pm и использую чешский символ «ě» для значения текстового поля, метки radio_group или чего-либо еще, что я получаю inse ›вставку« ě »

  2. это очень странно - поскольку вся страница имеет вид utf8 (). Тем более что это работает

      print '<textfield value="ěěěě" >';
    
  3. поэтому я уверен - это должен быть CGI.pm, вызывающий проблему ... Я пытался поставить

      use utf8;
      utf8::decode($textfield_value);
    

    в начале моей scirpt, и это решило проблему CGI.pm, но заставило все другие символы в сценарии (те, которые напечатаны регулярно) выглядеть забавно ..

Есть идеи ???

Ответы [ 2 ]

1 голос
/ 25 января 2012

Установите атрибут accept-charset в полях формы на UTF-8?

<form action="/..." accept-charset="UTF-8">

Этого может быть недостаточно для решения вашей проблемы, но часто необходимо заставить клиентский браузер выполнять utf8-закодируйте данные формы, которые отправляются на сервер.

0 голосов
/ 25 января 2012

Вы пытались заменить их на восьмеричные или шестнадцатеричные? К сожалению, похоже, что для этого символа нет HTML-кода.

...