2009-06-22 2 views
0

Вот мое описание Юникода. Исправьте и прокомментируйте.Это хорошее описание Unicode?

Unicode отделяет представление символа от механизма хранения символа. Это отличается от ANSI, в котором каждый символ представлен байтом.

Кодовая страница ANSI отображает символы в байтовые представления. Юникод отображает символы в кодовые точки. Кодовая точка - абстрактная концепция. Плата кодирования несет ответственность за представление кодовых точек Юникода в байтах.

Существует много схем кодирования Unicode. В некоторых схемах кодирования используется фиксированное количество байтов для представления кодовой точки Юникода. Этот подход должен сбалансировать количество кодовых точек, которые может представлять кодировка, и объем требуемого пространства памяти. Другие схемы кодирования используют переменное количество байтов для представления кодовой точки Юникода. Такой подход усложняет разбор данных, но они избегают ограничения объема видимости/объема хранилища, которое страдает фиксированные кодировки длины байтов.

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

+0

Не программируется связанные –

+1

??? Как unicode не связано с программированием ??? – Treb

+2

@Binary - если Unicode не связан с программированием, то в чем именно он связан? –

ответ

0

Звучит довольно точно. Вы можете добавить, что UTF-8 обычно используется для хранения текстовых документов и обычно используется для передачи текста по кабелю, поскольку он компактен, а UTF-16 также очень распространен, поскольку классы Java и .NET String используют UTF-16 потому что он эффективен.

0

Несколько тонкостей: совместимость ASCII не только (или даже основная) причина популярности UTF-8 - AFAIK, очень популярный побочный эффект совместимости ASCII является то, что размер байта Строка ASCII, преобразованная в UTF-8, будет одинаковой. Другими словами, при написании текста с несколькими символами, отличными от ASCII, вы получаете все преимущества ASCII и всего несколько байтов для символов, отличных от ASCII. Кроме того, я считаю, что все официальные кодировки Unicode могут представлять все кодовые точки Unicode.

0

Я бы избавиться от ссылки на ANSI, если я вам. В контексте наборов символов и кодировок «ANSI» обычно ссылается на кодовую страницу по умолчанию любой (Windows) системы, над которой вы работаете. Это обычно означает одну из расширенных или измененных версий Microsoft существующего стандарта, например windows-1252, а не ISO-8859-1. По иронии судьбы, эти расширения имеют не были благословлены ANSI. Это использование термина ANSI было придумано Microsoft и обычно можно найти в разделе выбора кодировки диалогов «Сохранить как» в приложениях Microsoft, таких как «Блокнот». Там вы обычно найдете опцию под названием «Unicode», которая на самом деле означает UTF-16 (little-endian, без спецификации).

Итак, если вы действительно хотите понять Unicode, вы должны начать с того, что выбрали все, что вы узнали или вывели, увидев его в программном обеспечении Windows (или стороннем программном обеспечении, которое эмулирует программное обеспечение Windows). На самом деле, выбросьте все, что есть, вы добрались до Unicode и начали с нуля. Это сложный вопрос, и, как и любой сложный предмет, вы найдете гораздо более плохую информацию об этом, чем о хорошем.

0

UTF-8 популярен только в западном полушарии.Языки, которые всегда нуждались в многобайтовой кодировке, намного выигрывают от использования UTF-16 или даже UTF-32.

Cheers,

Смежные вопросы