Я использую библиотеку iconv для взаимодействия с современным источником ввода, который использует UTF-8, к устаревшей системе, которая использует Latin1, иначе CP1252 (расширенный набор ISO-8859-1).
Интерфейс недавно не смог преобразовать французскую строку "Éducation", где "É" был закодирован как шестнадцатеричный 45 CC 81
. Обратите внимание, что кодировка назначения имеет символ «É», закодированный как C9
.
Почему iconv не может преобразовать это "É"? Я проверил, что инструмент командной строки iconv, доступный в MacOS X 10.7.3, говорит, что он не может конвертировать, и что модуль PERL iconv тоже выходит из строя.
Это тем более удивительно, что предварительно составленная форма символа "É" (закодированная как C3 89
) преобразуется просто отлично.
Это ошибка с iconv или я что-то упустил?
Обратите внимание, что у меня также возникает та же проблема, если я пытаюсь выполнить преобразование из UTF-16 (где "É" кодируется как составной 00 C9
или 00 45 03 01
разложенный).