Как позвонить в индию на сотовый. Адреса и телефоны в индии. Плюсы использования услуги виртуальный индийский номер

Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.). Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.

Стандарт состоит из двух основных разделов: универсальный набор символов (англ. UCS, universal character set) и семейство кодировок (англ. UTF, Unicode transformation format). Универсальный набор символов задаёт однозначное соответствие символов кодам - элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.

Стандарт Unicode был разработан с целью создания единой кодировки символов всех современных и многих древних письменных языков. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить несравненно большее количество символов, чем принятые ранее 8-битовые кодировки. Еще одним важным отличием Unicode от других систем кодировки является то, что он не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:

Тип символа (прописная буква, строчная буква, цифра, знак препинания и т.д.);

Атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т.д.);

Соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);

Соответствующее числовое значение (для цифровых символов).

Весь диапазон кодов от 0 до FFFF разбит на несколько стандартных подмножеств, каждое из которых соответствует либо алфавиту какого-то языка, либо группе специальных символов, сходных по своим функциям. На приведенной ниже схеме содержится общий перечень подмножеств Unicode 3.0 (рисунок 2).

Рисунок 2

Стандарт Unicode является основой для хранения и текста во многих современных компьютерных системах. Однако, он не совместим с большинством Интернет-протоколов, поскольку его коды могут содержать любые байтовые значения, а протоколы обычно используют байты 00 - 1F и FE - FF в качестве служебных. Для достижения совместимости были разработаны несколько форматов преобразования Unicode (UTFs, Unicode Transformation Formats), из которых на сегодня наиболее распространенным является UTF-8. Этот формат определяет следующие правила преобразования каждого кода Unicode в набор байтов (от одного до трех), пригодных для транспортировки Интернет-протоколами.


Здесь x,y,z обозначают биты исходного кода, которые должны извлекаться, начиная с младшего, и заноситься в байты результата справа налево, пока не будут заполнены все указанные позиции.

Дальнейшее развитие стандарта Unicode связано с добавлением новых языковых плоскостей, т.е. символов в диапазонах 10000 - 1FFFF, 20000 - 2FFFF и т.д., куда предполагается включать кодировку для письменностей мертвых языков, не попавших в таблицу, приведенную выше. Для кодирования этих дополнительных символов был разработан новый формат UTF-16.

Таким образом, существует 4 основных способа кодировки байтами в формате Unicode:

UTF-8: 128 символов кодируются одним байтом (формат ASCII), 1920 символов кодируются 2-мя байтами ((Roman, Greek, Cyrillic, Coptic, Armenian, Hebrew, Arabic символы), 63488 символов кодируются 3-мя байтами (Китайский, японский и др.) Оставшиеся 2 147 418 112 символы (еще не использованы) могут быть закодированы 4, 5 или 6-ю байтами.

UCS-2: Каждый символ представлен 2-мя байтами. Данная кодировка включает лишь первые 65 535 символов из формата Unicode.

UTF-16:Является расширением UCS-2, включает 1 114 112 символов формата Unicode. Первые 65 535 символов представлены 2-мя байтами, остальные - 4-мя байтами.

USC-4: Каждый символ кодируется 4-мя байтами.

Unicode - это международный стандарт кодировки символов, позволяющий единообразно отображать тексты на любом компьютере в мире, независимо от используемого на нем системного языка.

Основы

Чтобы понять, для чего нужна таблица символов Юникода, давайте сначала разберемся в механизме отображения текста на экране монитора. Компьютер, как мы знаем, обрабатывает всю информацию в цифровом виде, а вывести ее для правильного восприятия человеком должен в графическом. Таким образом, для того чтобы мы могли читать этот текст, надо решить как минимум две задачи:

  • Закодировать печатные символы в цифровую форму.
  • Обеспечить операционной системе возможность сопоставления цифровой формы с векторными символами, иными словами, найти правильные буквы.

Первые кодировки

Родоначальницей всех кодировок принято считать американскую ASCII. В ней был описан применяемый в английском языке латинский алфавит со знаками препинания и арабские цифры. Именно использованные в ней 128 символов стали основой для последующих разработок - их использует даже современная таблица символов Юникода. Буквы латинского алфавита занимают с тех пор первые позиции в любой кодировке.

Всего ASCII позволяла сохранить 256 символов, но поскольку первые 128 были заняты латиницей, остальные 128 начали использовать во всем мире для создания национальных стандартов. К примеру, в России на ее основе были созданы CP866 и KOI8-R. Назывались такие вариации расширенными версиями ASCII.

Кодовые страницы и «кракозябры»

Дальнейшее развитие технологий и появление графического интерфейса привело к тому, что американским институтом стандартизации была создана кодировка ANSI. Российским пользователям, особенно со стажем, ее версия известна под названием Windows 1251. В ней впервые было применено понятие «кодовая страница». Именно с помощью кодовых страниц, которые содержали символы национальных алфавитов, отличных от латинского, было налажено «взаимопонимание» между компьютерами, используемыми в разных странах.

Вместе с тем наличие большого количества различных кодировок, используемых для одного языка, начало вызывать проблемы. Появились так называемые кракозябры. Возникали они от несовпадения исходной кодовой страницы, в которой создавалась какая-либо информация, и кодовой станицы, применяемой по умолчанию на компьютере конечного пользователя.

В качестве примера можно привести указанные выше кириллические кодировки CP866 и KOI8-R. Буквы в них отличались кодовыми позициями и принципами размещения. В первой они были расставлены в алфавитном порядке, а во второй - в произвольном. Можете представить, что творилось перед глазами пользователя, который пытался открыть такой текст, не имея нужной кодовой страницы или при ее неправильной интерпретации компьютером.

Создание Unicode

Распространение интернета и сопутствующих технологий, таких как электронная почта, привело к тому что в конце концов ситуация с искажением текстов перестала устраивать всех. Передовые компании в области IT образовали Unicode Consortium ("Консорциум Юникод"). Таблица символов, представленная им в 1991 году под названием UTF-32, позволяла хранить более миллиарда уникальных символов. Это был важнейший шаг на пути к расшифровке текстов.

Однако первая универсальная таблица кодов-символов Юникод UTF-32, не получила большого распространения. Основной причиной стала избыточность хранимой информации. Быстро было подсчитано, что для стран, в которых используется латинский алфавит, закодированный с помощью новой универсальной таблицы, текст будет занимать места в четыре раза больше, чем при использовании расширенной таблицы ASCII.

Развитие Unicode

Следующая таблица символов Юникода UTF-16 эту проблему устранила. Кодирование в ней осуществлялось в два раза меньшим количеством бит, но вместе с тем уменьшилось и количество возможных комбинаций. Вместо миллиардов символов она позволяет сохранить только 65 536. Тем не менее она оказалась настолько удачной, что это число, по решению Консорциума, было определено как базовое пространство хранения символов стандарта Unicode.

Несмотря на такой успех, UTF-16 не устраивала всех, поскольку объем хранимой и передаваемой информации по-прежнему завышался в два раза. Универсальным решением стала UTF-8, таблица символов Юникода с переменной длиной записи. Это можно назвать прорывом в данной области.

Таким образом, с введением двух последних стандартов таблица символов Юникода решила проблему единого кодового пространства для всех применяемых в настоящее время шрифтов.

Юникод для русского языка

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

В указанные пять блоков входят основной кириллический и церковнославянский алфавит, а также дополнительные буквы других языков, использующих кириллицу. Ряд позиций выделен для отображения старых форм представления букв кириллицы, а 22 позиции из общего количества пока остаются свободными.

Актуальная версия Юникода

С решением своей первоочередной задачи, которая заключалась в стандартизации шрифтов и создании для них единого кодового пространства, "Консорциум" не прекратил свою работу. Юникод постоянно развивается и пополняется. Последняя актуальная версия этого стандарта 9.0 увидела свет в 2016 году. В нее было включено шесть дополнительных алфавитов и расширен список стандартизованных эмодзи.

Надо сказать, что с целью упрощения исследований, в Юникод добавляются даже так называемые мертвые языки. Такое название они получили потому, что людей, для которых он бы являлся родным, не существует. К этой группе относят также языки, дошедшие до нашего времени только в виде письменных памятников.

В принципе, подать заявку на добавление символов в новую спецификацию Юникода может любой желающий. Правда, для этого придется заполнить приличное количество исходных документов и потратить много времени. Живым примером этому может служить история программиста Теренса Идена. В 2013 году он подал заявку на включение в спецификацию символов, относящихся к обозначению кнопок управления питанием компьютера. В технической документации они использовались с середины 70-х годов прошлого века, но до появления спецификации 9.0 не входили в состав Unicode.

Таблица символов

На каждом компьютере, независимо от применяемой операционной системы, используется Юникод-таблица символов. Как пользоваться этими таблицами, где их найти и для чего они могут пригодиться обычному пользователю?

В ОС Windows таблица символов располагается в разделе меню «Служебные». В семействе операционных систем Linux ее обычно можно найти в подразделе «Стандартные», а в MacOS - в настройках клавиатуры. Основное назначение этой таблицы - ввод в текстовые документы символов, которые не расположены на клавиатуре.

Применение для таких таблиц можно найти самое широкое: от ввода технических символов и значков национальных денежных систем до написания инструкции по практическому применению карт Таро.

В заключение

Юникод используется повсеместно и вошел в нашу жизнь вместе с развитием интернета и мобильных технологий. Благодаря его использованию существенно упростилась система межнациональных коммуникаций. Можно сказать, что внедрение Юникода является показательным, но совершенно незаметным со стороны примером использования технологий для общего блага всего человечества.

Верите вы или нет, но существует формат изображений, встроенных в браузер. Этот формат позволяет загружать изображения до того, как они понадобились, обеспечивает рендеринг изображения на обычных или retina экранах и позволяет добавлять к изображениям CSS. ОК, это не совсем правда. Это не формат изображения, хотя все остальное остается в силе. Используя его, вы можете создавать иконки, независимые от разрешения, не требующие время на загрузку и стилизуемые с помощью CSS.

Что такое Юникод?

Юникод это возможность корректно отображать буквы и знаки пунктуации из различных языков на одной страницы. Он невероятно полезен: пользователи смогут работать с вашим сайтом по всему миру и он будет показывать то, что вы хотите - это может быть французский язык с диакритическими знаками или Kanji .

Юникод продолжает развиваться: сейчас актуальна версия 8.0 в которой более 120 тысяч символов (в оригинальной статье, опубликованной в начале 2014 года, речь шла о версии 6.3 и 110 тысячах символов).

Кроме букв и цифр, в Юникоде есть и другие символы и иконки. В последних версиях в их число вошли эмодзи , которые вы можете видеть в месседжере iOS.

Страницы HTML создаются из последовательности символов Юникода и при отсылке по сети они конвертируются в байты. Каждая буква и каждый символ любого языка имеют свой уникальный код и кодируются при сохранении файла.

При использовании системы кодирования UTF-8 вы можете напрямую вставлять в текст символы Юникода, но также можно добавлять их в текст, указывая цифровую символьную ссылку. Например, это символ сердечка и вы можете вывести этот символ, просто добавив код в разметку .

Эту числовую ссылку можно задавать как в десятичном формате, так и в шестнадцатеричном. Десятичный формат требует добавления в начале буквы x , запись даст то же самое сердечко ( ), что и предыдущий вариант. (2665 это шестнадцатеричный вариант 9829).

Если вы добавляете символ Юникода с помощью CSS, то вы можете использовать только шестнадцатеричные значения .

Некоторые наиболее часто используемые символы Юникода имеют более запоминаемые текстовые имена или аббревиатуры вместо цифровых кодов - это, например, амперсанд (& - &). Такие символы называются мнемоники в HTML , их полный список есть в Википедии .

Почему вам стоит использовать Юникод?

Хороший вопрос, вот несколько причин:

  1. Чтобы использовать корректные символы из разных языков.
  2. Для замены иконок.
  3. Для замены иконок, подключаемых через @font-face .
  4. Для задания CSS-классов

Корректные символы

Первая из причин не требует никаких дополнительных действий. Если HTML сохранен в формате UTF-8 и его кодировка передана по сети как UTF-8, все должно работать как надо.

Должно. К сожалению, не все браузеры и устройства поддерживают все символы Юникода одинаково (точнее, не все шрифты поддерживают полный набор символов). Например, недавно добавленные символы эмодзи поддерживаются не везде.

Для поддержки UTF-8 в HTML5 добавьте (при отсутствии доступа к настройкам сервера стоит добавить также ). При старом доктайпе используется ().

Иконки

Вторая причина использования Юникода это наличие большого количества полезных символов, которые можно использовать в качестве иконок. Например, , ≡ и .

Их очевидный плюс в том, что вам не надо никаких дополнительных файлов, чтобы добавить их на страницу, а, значит, ваш сайт будет быстрее. Вы также можете изменить их цвет или добавить тень с помощью CSS. А добавив переходы (css transition) вы сможете плавно менять цвет иконки при наведении на нее без каких-либо дополнительных изображений.

Предположим, что я хочу подключить индикатор рейтинга со звездами на свою страницу. Я могу сделать это так:

★ ★ ★ ☆ ☆

Получится следующий результат:

Но если вам не повезет, вы увидите что-то вроде этого:

Тот же рейтинг на BlackBerry 9000

Так бывает, если используемые символы отсутствуют в шрифте браузера или устройства (к счастью, эти звездочки поддерживаются отлично и старые телефоны BlackBerry являются здесь единственным исключением).

Если символ Юникода отсутствует, на его месте могут быть разные символы от пустого квадрата (□) до ромба со знаком вопроса (�).

А как найти символ Юникода, который может подойти для использования в вашем дизайне? Вы можете поискать его на сайте типа Unicodinator , просматривая имеющиеся символы, но есть и лучший вариант. - этот отличный сайт позволяет вам нарисовать искомую иконку, после чего предлагает вам список похожих символов Юникода.

Использование Юникода с @font-face иконками

Если вы используете иконки, подключаемые с внешним шрифтом через @font-face , символы Юникода можно использовать в качестве запасного варианта. Таким образом вы можете показать похожий символ Юникода на тех устройствах или в браузерах, где @font-face не поддерживается:

Слева иконки Font Awesome в Chrome, а справа замещающие их символы Юникода в Opera Mini.

Многие инструменты для подбора @font-face используют диапазон символов Юникода из области для частного использования (private use area). Проблема этого подхода в том, что если @font-face не поддерживается, пользователю передаются коды символов без какого-либо смысла.

Отлично подходит для создания наборов иконок в @font-face и позволяет выбрать в качестве основы для иконки подходящий символ Юникода.

Но будьте внимательны - некоторые браузеры и устройства не любят отдельные символы Юникода при их использовании с @font-face . Имеет смысл проверить поддержку символов Юникода с помощью Unify - это приложение поможет вам определить, насколько безопасно использование символа в наборе иконок @font-face .

Поддержка символов Юникода

Основная проблема с использованием символов Юникода в качестве запасного варианта это плохая поддержка в скринридерах (опять-таки, некоторые сведения об этом можно найти на Unify), поэтому важно осторожно выбирать используемые символы.

Если ваша иконка это просто декоративный элемент рядом с текстовой меткой, читаемым скринридером, вы можете особо не волноваться. Но если иконка расположена отдельно, стоит добавить скрытую текстовую метку, чтобы помочь пользователям скринридеров. Даже если символ Юникода будет считан скринридером, есть вероятность, что он будет сильно отличен от своего предназначения. Например, ≡ (≡) в качестве иконки-гамбургера будет считан VoiceOver на iOS как “идентичный”.

Юникод в названиях CSS-классов

То, что Юникод можно использовать в названиях классов и в таблицах стилей известно с 2007 года. Именно тогда Джонатан Снук написал об использовании символов Юникода во вспомогательных классов при верстке скругленных углов . Особого распространения эта идея не получила, но о возможности использовать Юникод в названиях классов (спецсимволы или кириллицу) знать стоит.

Выбор шрифтов

Совсем немногие шрифты поддерживают полный набор символов Юникода, поэтому при выборе шрифта сразу проверяйте наличие нужных вам символов.

Много иконок в Segoe UI Symbol или Arial Unicode MS . Эти шрифты есть и на PC и на Mac; в Lucida Grande также достаточное количество символов Юникода. Вы можете добавить эти шрифты в декларацию font-family , чтобы обеспечить наличие максимального количества символов Юникода для пользователей, у которых эти шрифты установлены.

Определение поддержки Юникода

Было бы очень удобно иметь возможность проверить наличие того или иного символа Юникода, но нет гарантированного способа сделать это.

Символы Юникода могут быть эффективны при наличии поддержки. Например, эмодзи в теме письма выделяет его на фоне остальных в почтовом ящике.

Заключение

Эта статья затрагивает лишь основы Юникода. Надеюсь, она окажется полезной и поможет вам лучше понять Юникод и эффективно применять его.

Список ссылок

  • (Генератор набора иконок @font-face на основе Юникода)
  • Shape Catcher (Инструмент для распознавания символов Юникода)
  • Unicodinator (таблица символов Юникода)
  • Unify (Проверка поддержки символов Юникода в браузерах)
  • Unitools (Коллекция инструментов для работы с Юникодом)

Unicode : UTF-8 , UTF-16, UTF-32.

Юникод представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.

Юникод не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:

    тип символа (прописная буква, строчная буква, цифра, знак препинания и т. д.);

    атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т. д.);

    соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);

    соответствующее числовое значение (для цифровых символов).

    Стандарты UTF (аббревиатура Unicode Transformation Format) для представления символов:

UTF-16 : В Windows настройка, ускорение, частые вопросы Vista для представления всех Unicode- символов используется кодировка UTF-16. В UTF-16 символы представлены двумя байтами (16 битами). Эта кодировка используется в Windows, поскольку 16-битными значениями можно представить символы, составляющие алфавиты большинства языков мира, это позволяет программам быстрее обрабатывать строки и вычислять их длину. Однако для представления символов алфавита некоторых языков 16 бит недостаточно. Для таких случаев UTE-16 поддерживает «суррогатные» кодировки, позволяющие кодировать символы 32 битами (4 байтами). Впрочем, приложений, которым приходится иметь дело с символами таких языков, мало, поэтому UTF-16 - хороший компромисс между экономией памяти и простотой программирования. Заметьте, что в.NET Framework все символы кодируются с использованием UTF-16, поэтому применение UTF-16 в Windows- приложениях повышает производительность и снижает потребление памяти при передаче строк между «родным» и управляемым кодом.

UTF-8 : В кодировке UTF-8 разные символы могут быть представлены 1,2,3 или 4 байтами. Символы с значениями меньше 0x0080 сжимаются до 1 байта, что очень удобно для символов, применяемых в США. Символы, которым соответствуют значения из диапазона 0x0080-0x07FF, преобразуются в 2-байтовые значения, что хорошо работает с алфавитами европейских и ближневосточных языков. Символы с бо́льшими значениями преобразуются в 3-байтовые значения, удобные при работе со среднеазиатскими языками. Наконец, «суррогатные» пары записываются в 4-байтовом формате. UTF-8- чрезвычайно популярная кодировка. Однако ее эффективность меньше по сравнению с UTF-16, если часто используются символы с значениями 0x0800 и выше.

UTF-32 : В UTF-32 все символы представлены 4 байтами. Эта кодировка удобна для написания простых алгоритмов для перебора символов любого языка, не требующих обработки символов, представленных разным числом байтов. Например, при использовании UTF-32 можно забыть о «суррогатах», поскольку любой символ в этой кодировке представлен 4 байтами. Ясно, что с точки зрения использования памяти эффективность UTF-32 далека от идеала. Поэтому данную кодировку редко применяют для передачи строк по сети и сохранения их в файлы. Как правило, UTF-32 используется как внутренний формат представления данных в программе.

UTF-8

В ближайшее время все более важную роль будет играть особый формат Unicode (и ISO 10646) под названием UTF-8 . Эта «производная» кодировка пользуется для записи символов цепочками байтов различной длины (от одного до шести), которые с помощью несложного алгоритма преобразуются в Unicode- коды, причем более употребительным символам соответствуют более короткие цепочки. Главное достоинство этого формата - совместимость с ASCII не только по значениям кодов, но и по количеству бит на символ, так как для кодирования любого из первых 128 символов в UTF-8 достаточно одного байта (хотя, например, для букв кириллицы нужно уже по два байта).

Формат UTF-8 был изобретён 2 сентября 1992 года Кеном Томпсоном и Робом Пайком и реализован в Plan 9. Сейчас стандарт UTF-8 официально закреплён в документах RFC 3629 и ISO /IEC 10646 Annex D.

Для Web- дизайнера эта кодировка имеет особое значение, так как именно она объявлена «стандартной кодировкой документа» в HTML начиная с версии 4.

Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII . И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байтов (реально только до 4 байт, поскольку использование кодов больше 221 не планируется), в которых первый байт всегда имеет вид 11xxxxxx, а остальные - 10xxxxxx.

Проще говоря, в формате UTF-8 символы латинского алфавита, знаки препинания и управляющие символы ASCII записываются кодами US- ASCII , a все остальные символы кодируются при помощи нескольких октетов со старшим битом 1. Это приводит к двум эффектам.

    Даже если программа не распознаёт Юникод, то латинские буквы, арабские цифры и знаки препинания будут отображаться правильно.

    В случае, если латинские буквы и простейшие знаки препинания (включая пробел) занимают существенный объём текста, UTF-8 даёт выигрыш по объёму по сравнению с UTF-16.

    На первый взгляд может показаться, что UTF-16 удобнее, так как в ней большинство символов кодируется ровно двумя байтами. Однако это сводится на нет необходимостью поддержки суррогатных пар, о которых часто забывают при использовании UTF-16, реализовывая лишь поддержку символов UCS-2.

Каждый пользователь Интернета в попытках настроить ту или иную его функцию хотя бы однажды видел на дисплее написанное слово «Юникод». Что это такое, вы узнаете, прочитав эту статью.

Определение

Кодировка "Юникод" — стандарт кодирования символов. Он был предложен некоммерческой организацией Unicode Inc. в 1991 году. Стандарт разработан с целью объединения как можно большего числа разнотипных символов в одном документе. Страница, которая создана на его основе, может содержать в себе буквы и иероглифы из разных языков (от русского до корейского) и математические знаки. При этом все символы в данной кодировке отображаются без проблем.

Причины создания

Когда-то, задолго до появления единой системы "Юникод", кодировка выбиралась исходя из предпочтений автора документа. По этой причине нередко, чтобы прочитать один документ, нужно было использовать разные таблицы. Иногда это приходилось делать по несколько раз, что существенно усложняло жизнь обычному пользователю. Как уже было сказано, решение этой проблемы в 1991 году было предложено некоммерческой организацией Unicode Inc., предложившей новый тип кодирования символов. Он был призван объединить морально устаревшие и разнообразные стандарты. "Юникод" - кодировка, которая озволила добиться немыслимого на тот момент: создать инструмент, поддерживающий огромное количество символов. Результат превзошел многие ожидания - появились документы, одновременно содержащие как английский, так и русский текст, латынь и математические выражения.

Но созданию единой кодировки предшествовала необходимость разрешения ряда проблем, которые возникли из-за огромного разнообразия стандартов, уже существовавших на тот момент. Самые распространённые из них:

  • эльфийские письмена, или «кракозябры»;
  • ограниченность набора символов;
  • проблема преобразования кодировок;
  • дублирование шрифтов.

Небольшой исторический экскурс

Представьте, что на дворе 80-е. Компьютерная техника еще не так распространена и имеет вид, отличный от сегодняшнего. В то время каждая ОС по-своему уникальна и доработана каждым энтузиастом под конкретные нужды. Необходимость обмена информацией превращается в дополнительную доработку всего на свете. Попытка прочитать документ, созданный под другой ОС, зачастую выводит на экран непонятный набор символов, и начинаются игры с кодировкой. Не всегда получается сделать это быстро, и порой необходимый документ удаётся открыть через полгода, а то и позже. Люди, которые часто обмениваются информацией, создают для себя таблицы преобразования. И вот работа над ними выявляет интересную деталь: создавать их нужно по двум направлениям: «из моей в твою» и обратно. Сделать банальную инверсию вычислений машина не может, для нее в правом столбце исходник, а в левом - результат, но никак не наоборот. Если появлялась необходимость использовать какие-либо специальные символы в документе, их необходимо было сначала добавить, а потом еще и объяснить партнеру, что ему нужно сделать, чтобы эти символы не превратились в «кракозябры». И не будем забывать, что под каждую кодировку приходилось разрабатывать или внедрять собственные шрифты, что приводило к созданию огромного количества дублей в ОС.

Представьте еще, что на странице шрифтов вы увидите 10 штук идентичных Times New Roman с маленькими пометками: для UTF-8, UTF-16, ANSI, UCS-2. Теперь вы понимаете, что разработка универсального стандарта была настоятельной необходимостью?

«Отцы-создатели»

Истоки создания Unicode следует искать в 1987 году, когда Джо Беккер из Xerox вместе с Ли Коллинзом и Марком Дэвисом из компании Apple начали исследования в сфере практического создания универсального набора символов. В августе 1988 года Джо Беккер опубликовал проект предложения по созданию 16-битной международной многоязычной системы кодирования.

Через несколько месяцев рабочая группа Unicode была расширена за счет включения Кена Уистлера и Майка Кернегана из RLG, Гленн Райт из Sun Microsystems и нескольких других специалистов, что позволило завершить работы по предварительному формированию единого стандарта кодирования.

Общее описание

В основе Unicode лежит понятие символа. Под этим определением понимается абстрактное явление, существующее в конкретном виде письменности и реализуемое через графемы (свои «портреты»). Каждый символ задается в "Юникоде" уникальным кодом, принадлежащим конкретному блоку стандарта. Например, графема B есть и в английском, и в русском алфавитах, но в Unicode ей соответствуют 2 разных символа. К ним применяется преобразование в т. е. каждый из них описывается ключом базы данных, набором свойств и полным названием.

Преимущества Unicode

От остальных современников кодировка "Юникод" отличалась огромным запасом знаков для «шифрования» символов. Дело в том, что его предшественники имели 8 бит, то есть поддерживали 28 символов, а вот новая разработка имела уже 216 символов, что стало гигантским шагом вперед. Это позволило закодировать практически все существующие и распространённые алфавиты.

С появлением "Юникода" отпала надобность использовать таблицы преобразования: как единый стандарт он просто сводил на нет их необходимость. Точно так же канули в Лету и «кракозябры» - единый стандарт сделал их невозможными, равно как и исключил необходимость создания дублей шрифтов.

Развитие Unicode

Конечно, прогресс не стоит на месте, и с момента первой презентации минуло уже 25 лет. Однако кодировка "Юникод" упрямо удерживает свои позиции в мире. Во многом это стало возможным благодаря тому, что он стал легко внедряемым и получил распространение, будучи признанным разработчикам проприетарного (платного) и открытого ПО.

При этом не стоит полагать, что сегодня нам доступна та же кодировка "Юникод", что и четверть века назад. На данный момент ее версия сменилась на 5.х.х, а количество кодируемых символов возросло до 231. От возможности использовать больший запас знаков отказались, чтобы всё еще сохранить поддержку для Unicode-16 (кодировки, где максимальное их количество ограничивалось цифрой 216). С момента своего появления и до версии 2.0.0 "Юникод-стандарт" увеличил количество символов, которые в него входили, практически в 2 раза. Рост возможностей продолжался и в последующие годы. К версии 4.0.0 уже появилась необходимость увеличить сам стандарт, что и было сделано. В результате "Юникод" обрел тот вид, в котором мы его знаем сегодня.

Что еще есть в Unicode?

Помимо огромного, постоянно пополняющегося количества символов, имеет еще одну полезную черту. Речь идет о так называемой нормализации. Вместо того чтобы пролистывать весь документ символ за символом и подставлять соответствующие значки из таблицы соответствия, используется один из существующих алгоритмов нормализации. О чем речь?

Вместо того чтобы тратить ресурсы вычислительной машины на регулярную проверку одного и того же символа, который может быть схожим в разных алфавитах, используется специальный алгоритм. Он позволяет вынести схожие символы отдельной графой таблицы подстановки и обращаться уже к ним, а не раз за разом перепроверять все данные.

Таких алгоритмов разработано и внедрено четыре. В каждом из них преобразование происходит по строго определенному принципу, отличающемуся от других, поэтому назвать какой-то один из них наиболее эффективным не представляется возможным. Каждый разрабатывался для определенных нужд, был внедрён и успешно используется.

Распространение стандарта

За 25 лет своей истории кодировка "Юникод" получила, вероятно, наибольшее распространение в мире. Под этот стандарт подгоняются также программы и web-страницы. О широте применения может говорить тот факт, что Unicode сегодня используют более 60 % интернет-ресурсов.

Теперь вам известно, когда появился стандарт "Юникод". Что это такое, вы также знаете и сможете оценить все значение изобретения, сделанного группой специалистов Unicode Inc. более 25 лет назад.




Top