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 в качестве стандартной кодировки символов во всем приложении.