История изменений
Исправление disarmer, (текущая версия) :
Например «Malformed UTF-8 character» возникает при обработке последовательностей байт, которые не соответствуют символам в utf. В utf-8 на один символ приходится разное количество байт, пропустив один или несколько, невозможно будет правильно декодировать строку дальше(не знаем где граница символа)
Кракозябры, квадратики, вопросики появляются в случае других кодировок, в utf такие проблемы фатальны (например в БД такие данные тоже не вставить).
как оно вообще это детектит?
perl не детектит на что похожа строка, он возвращает ошибку при попытке сделать из набора байт utf-8 строку. Определить кодировку можно только эвристически (enca например).
Вообще в perl почти эталонная поддержка unicode, проблема скорее всего решится изменением одной-двух строк, скорее всего в части обработки данных от пользователя
Исходная версия disarmer, :
Например «Malformed UTF-8 character» возникает при обработке последовательностей байт, которые не соответствуют символам в utf. В utf-8 на один символ приходится разное количество байт, пропустив один или несколько, невозможно будет правильно декодировать строку дальше(не знаем где граница символа)
Кракозябры, квадратики, вопросики появляются в случае других кодировок, в utf такие проблемы фатальны (например в БД такие данные тоже не вставить).
как оно вообще это детектит?
perl не детектит на что похожа строка, он возвращает ошибку при попытке сделать из набора байт utf-8 строку. Определить кодировку только эвристически (enca например).
Вообще в perl почти эталонная поддержка unicode, проблема скорее всего решится изменением одной-двух строк, скорее всего в части обработки данных от пользователя