#encoding #iso-8859-1 #byte-order-mark #iso-8859-2
Вопрос:
существует ли спецификация кодировки ISO-8859-1 и ISO-8859-2?
Ответ №1:
Нет. Нет необходимости в спецификации (Знак порядка байтов) для кодировки, в которой каждый (за исключением) символ равен одному байту. Спецификация используется для определения того, какой порядок байтов имеет 16-битные (или 32-битные) числа: различные процессоры используют разные соглашения, а также разные протоколы: интернет (IP) использует другой порядок в качестве обычных процессоров Intel (и поэтому распространенных операционных систем).
Примечание: одна крупная компания (Microsoft), как известно, нарушает стандарты только для собственной выгоды, и поэтому она начала добавлять ненужные (и часто неправильные) спецификации также в UTF-8. (UTF-8 может использовать спецификацию в некоторых конкретных обстоятельствах). Не попадайтесь в ловушку. Unix, Linux и Apple смогли перейти на UTF-8 без особых сбоев.
Информация о кодировании должна быть выведена за пределы диапазона (например, заданного протоколом). Другого пути нет. А в старой 8-битной кодировке нет места для включения такой информации (256 символов уже недостаточно). Python и некоторые редакторы будут смотреть на подпись (строку текста) в начале или в конце файла, но это некрасиво вне исходного кода), и не все редакторы используют такую информацию.
В противном случае, обычный метод: попробуйте расшифровать его как UTF-8 (если нет 00 байт, в таком случае проверьте UTF-16 и UTF-32), если у вас есть ошибки, попробуйте с латиницей-1 или другими (вам нужен словарь распространенных слов на многих языках). В любом случае, существует множество эвристик (так что: «догадки»), и никогда нельзя быть уверенным в кодировании (только в большом тексте, созданном для людей: вероятность угадать высока).
Комментарии:
1. Помимо того факта, что спецификация не нужна, она также не является частью набора символов , поэтому ее просто невозможно представить.