Сложности, присущие ASCII и Extended ASCII, и совместимость с Unicode? - PullRequest
6 голосов
/ 25 августа 2010

Какие трудности присущи ASCII и Extended ASCII и как эти трудности преодолеваются с помощью Unicode?

Может кто-нибудь объяснить мне совместимость с юникодом?

И что означают термины, связанные с Юникодом, такие как плоскости, базовая многоязычная плоскость (BMP), дополнительная многоязычная плоскость (SMP), дополнительная идеографическая плоскость (SIP), дополнительная специальная плоскость (SSP) и плоскости частного использования (PUP).

Я нашел все эти слова очень запутанными

1 Ответ

11 голосов
/ 26 августа 2010

ASCII

ASCII было меньше или больше первой кодировки символов в мире. В те времена, когда байт был очень дорогим, а 1 МГц - чрезвычайно быстрым, только символы, которые появлялись на этих древних американских печатных машинках (а также на средней современной международной клавиатуре США), были охвачены кодировкой Кодировка символов ASCII. Это включает в себя полный латинский алфавит (AZ, как в нижнем, так и в верхнем регистре), цифры (0-9), лексические управляющие символы (пробел, точка, запятая, двоеточие и т. Д.) И некоторые специальные символы (знак at , острый знак, знак доллара и так далее). Все эти символы занимают пространство в 7 битов, половину комнаты, которую обеспечивает байт, всего 128 символов.

Расширенные ASCII и ISO 8859

Позже оставшийся бит байта используется для Extended ASCII , который предоставляет место в общей сложности для 255 символов. Большая часть оставшейся комнаты используется специальными символами, такими как диакритические знаки и символы рисования линий. Но поскольку каждый использовал оставшуюся комнату по-своему (IBM, Commodore, Universities, Organizations, и так далее), он не был взаимозаменяемым . Символы, которые были изначально закодированы с использованием кодировки X, будут отображаться как Mojibake , когда они декодируются с использованием другой кодировки Y. Позже ISO разработал стандартные определения кодировки символов для 8-битных расширений ASCII, что привело к известным ISO 8859 стандартам кодировки символов на основе ASCII, таким как ISO 8859-1, так что все они лучше взаимозаменяемы.

Unicode

8 бит может быть достаточно для языков, использующих латинский алфавит, но этого, безусловно, недостаточно для остальных нелатинских языков в мире, таких как китайский, японский, иврит, кириллица, санскрит, арабский и т. Д. в одиночку, чтобы включить их все только в 8 битах. Они разработали свои собственные кодировки символов, отличные от ISO, , которые не были взаимозаменяемыми , такие как Guobiao, BIG5, JIS, KOI, MIK, TSCII и так далее. Наконец, был установлен новый стандарт кодировки символов на основе ISO 8859-1 для охвата любых символов, используемых в мире, так что он является взаимозаменяемым везде : Unicode . Он предоставляет место для более миллиона символов, из которых в настоящее время заполнено около 10%. Кодировка символов UTF-8 основана на Unicode.

Плоскости Unicode

Символы Unicode подразделяются на семнадцать плоскостей , каждая из которых предоставляет место для 65536 символов (16 бит).

  • Plane 0: Базовая многоязычная плоскость (BMP) , содержит символы всех современных языков, известных в мире.
  • Plane 1: Дополнительная многоязычная плоскость (SMP) , содержит исторические языки / сценарии, а также многоязычные музыкальные и математические символы.
  • Plane 2: Дополнительная идеографическая плоскость (SIP) , она содержит «специальные» символы CJK (китайский / японский / корейский), которых довольно много, но они очень редко используются в современной письменности. «Обычные» символы CJK уже присутствуют в BMP.
  • Самолеты 3-13: неиспользовано .
  • Plane 14: Дополнительная специальная плоскость (SSP) , поскольку она содержит только некоторые символы тегов и селекторы вариантов глифа. Символы тега в настоящее время устарели и могут быть удалены в будущем. Селекторы вариаций глифа должны использоваться в качестве метаданных, которые вы добавляете к существующим символам, что, в свою очередь, может дать читателю указание немного отличить его от символа.
  • Самолеты 15-16: Самолеты частного использования (PUP) , он предоставляет возможность (крупным) организациям или инициативам пользователей включать свои собственные специальные символы или символы в стандарт, чтобы его можно было везде заменить. Например, Emoji (смайлики / смайлики в японском стиле).

Обычно вас интересует только BMP и использование кодировки UTF-8 в качестве стандартной кодировки символов во всем приложении.

...