Вопрос

Мой текстовый редактор позволяет мне код в нескольких разных форматах символов ANSI, UTF-8, UTF-8 (NO BOM), UTF-16LE и UTF-16BE.

В чем разница между ними?

Что обычно считается лучшим форматом (я использую Python, если это делает диффунцию)?

Это было полезно?

Решение

  • «АНСИ» - это неправильномер, и обычно относится к некоторой 8-битной кодированию, это значение по умолчанию на текущей платформе (на «западных» установках Windows, которые обычно Windows-1252.). Он поддерживает только небольшой набор символов (максимум 256 различных символов).
  • UTF-8. Является ли переменная длина, совместимая ASCII-совместимое кодирование, способное хранить любую и все символы Unicode. Это довольно хороший выбор для западного текста, который должен поддерживать все символы Unicode и очень жизнеспособный выбор в общем случае.
  • «UTF-8 (NO BOM)» - это имя Windows дает использование UTF-8 без написания Маркер заказа байта. Отказ Так как спецификация не требуется Для UTF-8 его не следует использовать, и это будет правильный выбор (почти все остальные называют эту версию просто «UTF-8»!).
  • UTF-16LE и UTF-16BE Маленький Endian и большой Endian Версии UTF-16. кодировка. Поскольку UTF-8 UTF-16 способен представить любой символ Unicode, однако это не совместим с ASCII.

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

UTF-16 может занять меньше места, если большинство вашего текста состоит из символов не-ASCII (т. Е. Не использует базовый латинский алфавит).

«ANSI» следует использовать только тогда, когда у вас есть особая необходимость взаимодействия с устаревшим приложением, которое не поддерживает Unicode.

Важной вещью о каком-либо кодировании состоит в том, что они являются метаданными, которые необходимо сообщать в дополнение к данным. Это означает, что вы должен знать Кодирование некоторых байтового потока для правильного интерпретации его текста. Так что вы должны либо Используйте форматы, которые документируют фактическое использование кодирования (XML - главный пример) или Стандартизировать на одном кодировании в данном контексте и использовать только это.

Например, если вы запускаете программный проект, вы можете указать, что весь ваш исходный код находится в данном кодировке (снова: я предлагаю UTF-8) и придерживайтесь этого.

Для файлов Python конкретно, есть Способ указать кодирование ваших исходных файлов.

Другие советы

Здесь. Отказ Обратите внимание, что «ANSI» обычно CP1252.

Вы, вероятно, получите наибольшую утилиту с UTF-8. Нет бом Забудьте, что ANSI и ASCII существуют, они устарели динозавры.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top