| С
каждым символом любого шрифта связан числовой код. За многие годы
кодирование текстовых символов прошло длинный путь от пятиразрядного
кодирования (32 различимых символа) к шести-, семи-, восьмиразрядному
и далее к шестнадцатиразрядному.
Наиболее долго практикуется восьмиразрядное
кодирование, введенное в начале 60-х годов прошлого века. Оно
позволяет кодировать наборы, содержащие до 256 символов. Такой
набор
может охватить цифры, знаки препинания, общепринятые обозначения
и буквы одного-двух национальных алфавитов.
Однако с развитием Интернета и
других средств связи резко возрос уровень международного общения
и восьмиразрядное кодирование перестало соответствовать современным
требованиям. На смену ему пришел новый стандарт — Unicode. Он
закрепил за каждым символом различных национальных алфавитов уникальный
шестнадцатиразрядный номер. Стандарту Unicode соответствуют все
шрифты OpenTypera также некоторые шрифты True Туре.
В литературе нередко можно встретить
поверхностное суждение о том, что Unicode — это система двухбайтового
кодирования. На самом деле это не совсем так, ведь шестнадцать
разрядов порядкового номера символа далеко не всегда представляются
парой байтов. Они могут представляться одним, двумя, тремя, а
в некоторых случаях и четырьмя байтами. Количество байтов в кодировке
символа определяет вовсе не система кодирования Unicode, а связанный
с ней механизм преобразования битов в байты, который называется
UTF (Unicode Transformation Format).
• Если применить механизм преобразования
UTF-8 то англоязычные символы запишутся всего-навсего одним байтом.
Для них это возможно, потому что в таблице Unicode они занимают
почетные первые места (старшие разряды в 16-битной записи номера
символа — нулевые и их просто отбрасывают).
Немножко хуже русскому и другим
европейским языкам. Их символы нельзя записать одним байтом —
только двумя. А символы восточных языков приходится записывать
тремя байтами. Этот механизм наиболее выгоден для Англии и США
и не выгоден Японии, Китаю и Корее.
• Если применить механизм преобразования
UTF-16, то все символы всех языков запишутся ровно двумя байтами.
Этот механизм наиболее выгоден для Китая, Кореи и Японии и наименее
выгоден Англии и США. России и другим европейским странам все
равно, каким механизмом пользоваться: и ТР-8 иТР-16.
• Существует еще механизм ТЕ-32,
преобразующий код символа в четыре байта, но это специальная операция
для специальных символов.
• На благо электронной почты
был разработан механизм С77Т-7, преобразующий 16 разрядов номера
символа в восьмиразрядные октеты, в которых значимыми являются
7 младших разрядов. Количество полученных октетов зависит от языка,
на котором записано сообщение. Смысл преобразования заключается
в том, чтобы оптимально подготовить текст к пересылке и упредить
неуклюжие попытки почтовых систем применять свои алгоритмы преобразования
байтов. |