Проблема с 8-битной кодировкой символов заключается в том, что для интерпретации правильной кодовой страницы в большинстве случаев требуется человеческий интеллект.
Когда вы запускаете file
для файла, может получиться, что файл в основном сделан из печатных символов, но поскольку он смотрит только на байты, он не может легко отличить iso-8895-1 от iso-8895-2. Для file
, 0x80
совпадает с 0x80
.
file
может только сказать, что файл является текстовым и, вероятно, iso-8895- * или windows - *, из-за использование 0x80-0xFF
. Т.е. не только ASCII.
(кодировки Unicode, такие как UTF-8 и UTF-16, легче обнаружить по их последовательности байтов или метке порядка байтов, установленной в верхней части файла)
Существуют некоторые интеллектуальные детекторы кодовых страниц символов, которые с помощью словарей из разных языков могут оценивать кодовую страницу на основе последовательности символов / байтов.
Вероятное преобразование, которое вам нужно, это просто iso-8895-2 -> UTF-8
.
Для вас важно то, что вы знаете исходную кодировку (интерпретацию), а затем, когда вы проверяете ее, точно знаете, какую кодировку вы просматриваете.
Например, PHP будет по умолчанию установите кодировку HTTP на iso-8895-1
. Это означает, что вполне возможно, что вы правильно конвертируете в iso-8895-2
, но ваш браузер тогда "интерпретирует" как iso-8895-1
.
. Лучший способ проверить это сохранить файл на диск, а затем использовать текстовый редактор, такой как VS Code , перед тем, как открывать файл, перед тем как открыть файл , для которого необходимо задать требуемую кодировку.
Если вам нужна дополнительная помощь, вам нужно отредактировать вопрос, включив в него точный код использование.