Два байта юникодных букв это миф? - PullRequest
1 голос
/ 08 ноября 2011

Я прочитал статью, рассказывающую о кодировке текста. Это говорит о том, что высказывание о том, что буква Unicode составляет два байта, является мифом. Это объясняет это, но мой английский недостаточно хорош, чтобы понять причины.

Пожалуйста, кто-нибудь здесь может объяснить этот факт, если это правда и причины? Пожалуйста, придерживайтесь простого английского, насколько это возможно.

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Windows и многие устаревшие приложения традиционно использовали 16 бит (два байта) для представления символов Юникода, но фактический стандарт - 21 бит (от 0x000000 до 0x10ffff).Вот почему существует так много разных кодировок (UTF-8 и т. Д.).Сегодня наиболее распространенным внутренним представлением символов Юникода внутри программ должно быть UTF-32 (32 бита, 4 байта), в то время как большинство из них хранятся на диске в формате UTF-8.

Для получения дополнительной информации о различных Unicodeсхемы кодирования см. в этой статье Википедии: http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings

3 голосов
/ 08 ноября 2011

Может потребоваться больше или меньше в зависимости от формата Юникода и того, какой символ вы хотите представить. Максимум 4 байта на символ:

Стандарты кодировки символов определяют не только идентичность каждого символ и его числовое значение, или кодовая точка, но и как это значение представлено в битах.

Стандарт Unicode определяет три формы кодирования, которые позволяют данные для передачи в формате, ориентированном на байты, слова или двойные слова (т. е. в 8, 16 или 32 бита на единицу кода). Все три формы кодирования кодировать один и тот же репертуар общих символов и может быть эффективно превращаются друг в друга без потери данных. Юникод Консорциум полностью поддерживает использование любой из этих форм кодирования в качестве совместимый способ реализации стандарта Unicode.

UTF-8 популярен для HTML и подобных протоколов. UTF-8 - это способ преобразование всех символов Unicode в кодировку переменной длины байт. Преимущества в том, что символы Unicode, соответствующие для знакомого набора ASCII имеют те же байтовые значения, что и ASCII, и что Символы Юникода, преобразованные в UTF-8, можно использовать с существующее программное обеспечение без переписывания программного обеспечения.

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

UTF-32 полезен, когда объем памяти не имеет значения, но фиксированная ширина, Требуется доступ к символам единичного кода. Каждый юникод при использовании UTF-32 символ кодируется в виде единой 32-битной кодовой единицы.

Все три формы кодирования требуют максимум 4 байта (или 32-битных) данных для каждый символ.

См. http://www.unicode.org/standard/principles.html

...