Неправильная кодировка perl в Foswiki

Я использую Foswiki и столкнулся с действительно странной проблемой. Я использую сервер LDAP для аутентификации людей, и обнаружил, что записи с китайским языком кодируются в utf-8, даже если это уже utf-8. Вот что я сделал

  1. Я запускаю тестовые коды в командной строке и получаю правильный вывод

$str = "程洋" # это китайские слова print STDERR "string is $ str";

$ str = ~ s /(.)/ sprintf ("0x% x", ord ($ 1)) / например;

выведите STDERR "строка hex is $str";

->程洋
->0xe7 0xa8 0x8b 0xe6 0xb4 0x8

Я не могу использовать code sample в этих кодах кажется, что строковое выражение сбивает с толку уценку system.sorry для этого.

  1. Я запускаю те же коды в системе плагинов Foswiki, которая поддерживается apache2, в этой среде, print STDERR автоматически перенаправит в /var/log/apache2/error.log, на этот раз я получу такой вывод ->\xc3\xa7\xc2\xa8\xc2\x8b\xc3\xa6\xc2\xb4\xc2\x8b ->0xe7 0xa8 0x8b 0xe6 0xb4 0x8b

Как видите, слова экранируются в строку, похожую на URL, если это 0xe7\xa8\x8b\xe6\xb4\x8b Тогда я думаю, что все в порядке, но они снова кодируются в utf-8, даже если это уже utf-8, но гекс все еще в порядке. Это случилось не только с print, вещи на веб-странице также будут отображаться, как это, и приведут к путанице кодов любых китайских слов, почему?

1 ответ

Похоже, это связано с вопросом поддержки 1817 http://foswiki.org/Support/Question1817.

У меня нет опыта работы с поддержкой utf-8 в Foswiki, и я не знаю никого, кто бы это сделал.

Предлагаем вам разместить свой вопрос на Foswiki-discuss@lists.sourceforge.net. И заявить:

  • Версия Foswiki
  • версия perl
  • версия apache
  • операционная система

Это может быть передано кому-то с нужными навыками.

Другие вопросы по тегам