Почему iconv может преобразовывать предварительно составленную форму, но не преобразованную форму «É» (из UTF-8 в CP1252)

Я использую библиотеку iconv для интерфейса от современного источника ввода, использующего UTF-8, к устаревшей системе, использующей Latin1, также известной как CP1252 (надмножество ISO-8859-1).

Интерфейсу недавно не удалось преобразовать французскую строку «Éducation», где «É» была закодирована как шестнадцатеричная 45 CC 81. Обратите внимание, что кодировка назначения имеет символ «É», закодированный как C9.

Почему iconv не может преобразовать "É"? Я проверил, что инструмент командной строки iconv, доступный в MacOS X 10.7.3, говорит, что не может преобразовать, и что модуль iconv PERL также дает сбой.

Это тем более озадачивает, что предварительно составленная форма символа «É» (закодированная как C3 89) преобразуется очень хорошо.

Это ошибка iconv или я что-то пропустил?

Обратите внимание, что у меня также возникает та же проблема, если я пытаюсь преобразовать из UTF-16 (где «É» кодируется как 00 C9 составлено или 00 45 03 01 разложено) .

9
задан Neil Mayhew 2 February 2017 в 11:41
поделиться