В начале развития компьютерной индустрии для хранения символов в компьютере было достаточно 8 байт (от A до Z, стандарт ASCII). До изобретения Unicode текст записывался по принципу «один байт на один символ». Примерно в это же время в разных странах были разработаны собственные системы хранения символов (кодировки). Например в Японии — это `JIS`, в России — `KOI8`, в Индии — `ISCII` и так далее. Вскоре к этому списку добавились кодировки `ISO-8859-*`, `IBM-*`, `OEM-*`, отдельные частные решения для операционных систем `Windows-*`, `MAC-*`.
В результате появилось огромное количество кодировок, несовместимых друг с другом. При последующей глобализации и интернационализации программного обеспечения, существование такого числа кодировок оказалось серьезной проблемой.
В конце 1980-х началась работа по созданию универсальной кодировки. Один проект назывался `ISO 10646` (ISO означает International Organization for Standardization), другой — Unicode (Объединение производителей мультиязычного программного обеспечения).
В общем в 1991 году была представлена первая спецификация Unicode и она оказалась наиболее удачной.
Аббревиатура UTF означает Unicode (Character Set) Transformation Format. UTF-8 — один из 13 способов хранения символов:
- UCS-2 (предшественник UTF-16)
- UCS-2BE (порядок символов big-endian)
- UCS-2LE (порядок символов little-endian)
- UCS-4 (предшественник UTF-32)
- UCS-4BE
- UCS-4LE
- UTF-8
- UTF-16
- UTF-16BE
- UTF-16LE
- UTF-32
- UTF-32BE
- UTF-32LE
UCS-2 определяют формат записи «два байта на один символ», UCS-4 — «четыре байта на один символ». Кодировка UTF-8 — это компромисс, это комбинированный вариант хранения символов. Например:
- символ ASCII хранится как один символ, U+005A (Z) = Z
- кириллица хранится как два символа, U+042F (Я) = РЇ
- иероглифы хранятся как три символа, U+6587 (文) = ж–‡
- готика хранится как четыре символа, U+10330 (𐌰) = рђЊ°
Кодировка UTF-8 включает все символы из ранее созданных кодировок, тем самым обеспечивает совместимость и неконфликтность всех символов любого языка между собой.
Создание сайтов в кодировке UTF-8 — это огромный плюс. Поисковые машины хранят данные в кодировке UTF-8 (в том числе Google, Яндекс), и предоставление данных в этой же кодировке означает ускорение индексирования данных. При обмене сообщениями по электронной почте в кодировке UTF-8, проблем с переключением кодировок для прочтения письма, и проблем с различиями между кодировкой текста письма и кодировкой темы сообщения просто не существует. В международной торговле, при выписке счета или при обращении к получателю, вы можете просто назвать его по имени. Например, если человека зовут Ваня, или João, или 王, или محمود, то можно прямо так и сказать:
- Привет, Ваня
- Olá João
- 你好 王
- محمود مرحباً