Подтверждение кодировки файла - PullRequest
0 голосов
/ 12 февраля 2020

Я вывожу файл из служб SSIS в кодировке UTF-8. Этот файл передается третьим лицам для импорта в их систему. У них проблемы с импортом этого файла. Хотя они запросили кодировку UTF-8, похоже, они конвертируют кодировку в ISO-8859-1. Они используют эту команду для преобразования файлов в кодировку:

iconv -f UTF-8 -t ISO-8859-1 dweyr.inp 

Они получают эту ошибку

illegal input sequence at position 11 

Часть текста, вызывающая проблему:

ark O’Dwy

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

Как я могу подтвердить, кто прав?

1 Ответ

2 голосов
/ 12 февраля 2020

Сообщение об ошибке iconv немного вводит в заблуждение, но вроде как правильно.

Это не говорит о том, что ввод недопустим в UTF-8, но его нельзя преобразовать в ISO -8859-1 без потерь. ISO-8859-1 не имеет способа кодировать символ .

Убедитесь, что, выполнив эту команду:

echo "ark O’Dwy" | iconv -f UTF-8 -t UTF-7

Это выдаст вывод, который выглядит как "ark O+IBk-Dwy" .

Здесь я вывожу в UTF-7 (очень редко используемая кодировка, которая полезна здесь для демонстрации, но немного иначе).

Другими словами: кодировка только "незаконна «в том смысле, что его нельзя преобразовать в ISO-8859-1, но это совершенно допустимая последовательность UTF-8.

Если третья сторона заявляет о поддержке UTF-8, то они могут сделать это только очень поверхностно. Они могут поддерживать любой текст, который может быть закодирован в ISO-8859-1, если он закодирован в UTF-8 (что является чрезвычайно низким уровнем "поддержки UTF-8").

...