Вопрос:
ANSI кажется ограниченным по сравнению с UTF-8, но это кодировка файла по умолчанию в Notepad++, поэтому мне было интересно.
Лучший ответ:
Ну, если вы можете кодировать все в ANSI (любой ANSI на вашем компьютере означает, это ужасно двусмысленный термин), то он может быть короче в UTF-8. Для символов, отличных от ASCII, кодировки ANSI могут по-прежнему кодировать каждый символ в одном байте, тогда как в UTF-8 они будут занимать больше байтов.
Это крошечное преимущество, хотя и недостатки – значительная ИМО – я бы определенно пошел с UTF-8.
Ответ №1
Строго говоря, “выгода” может заключаться в том, что использование байтов может быть меньше, поскольку в UTF-8 имеется много символов, которые закодированы в одном байте ANSI и два-три. Например, florin, mdash, ndash, символ времени и некоторые акцентированные римские буквы.
В Windows API есть собственные операции, которые могут быть быстрее.
Вы много отказываетесь, ограничивая себя 256 символами, в отличие от UTF-8 миллиона плюс.
Ответ №2
Выйдя на Jon, ответьте:
Требования к пространству для кодирования UTF-8, как извлеченная статья Википедии UTF-8 и отформатированная/комбинированная:
- Таким образом, первые 128 (диапазон [0, 0x7f]) символов (US-ASCII) нуждаются в одном байте.
- Следующие 1,920 (диапазон [0x80,0x07ff]) символов должны [0x80,0x07ff] два байта для кодирования….
- Три байта необходимы для остальных (диапазон [0x0800,0xffff]) базовой многоязычной плоскости (которая содержит практически все используемые символы).
- Для символов других плоскостей Unicode необходимы четыре байта, которые включают менее распространенные символы CJK и различные исторические сценарии.
Если посмотреть на сопоставление ANSI и Unicode, можно увидеть, что половина символов ANSI (набор ASCII) выравнивается с кодировкой Unicode (1 байт), число значений свыше 127 также попадает в диапазон Unicode [0,0x7FF] (2 байты), и есть менее распространенные значения, которые отображаются в Unicode при превышении 0x07ff (для кодирования в UTF-8 требуется 3 байта).
Теперь о том, почему это кодировка по умолчанию – поговорите с автором Notepad++:
Счастливое кодирование.