Что такое Unicode? Кодировка Unicode Стандарт юникод для кодирования одного символа отводит.

Любые числа (в определенных пределах) в памяти компьютера кодируются числами двоичной системы счисления. Для этого существуют простые и понятные правила перевода. Однако на сегодняшний день компьютер используется куда шире, чем в роли исполнителя трудоемких вычислений. Например, в памяти ЭВМ хранятся текстовая и мультимедийная информация. Поэтому возникает первый вопрос:

Как в памяти компьютера хранятся символы (буквы)?

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

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

Однако алфавитов в мире очень много (английский, русский, китайский и др.). Поэтому следующий вопрос:

Как закодировать все используемые на компьютере алфавиты?

Для ответа на этот вопрос пойдем историческим путем.

В 60-х годах XX века в американском национальном институте стандартизации (ANSI) была разработана таблица кодирования символов, которая впоследствии была использована во всех операционных системах. Эта таблица называется ASCII (American Standard Code for Information Interchange – американский стандартный код для обмена информацией) . Чуть позже появилась расширенная версия ASCII .

В соответствие с таблицей кодирования ASCII для представления одного символа выделяется 1 байт (8 бит). Набор из 8 ячеек может принять 2 8 = 256 различных значений. Первые 128 значений (от 0 до 127) постоянны и формируют так называемую основную часть таблицы, куда входят десятичные цифры, буквы латинского алфавита (заглавные и строчные), знаки препинания (точка, запятая, скобки и др.), а также пробел и различные служебные символы (табуляция, перевод строки и др.). Значения от 128 до 255 формируют дополнительную часть таблицы, где принято кодировать символы национальных алфавитов.

Поскольку национальных алфавитов огромное множество, то расширенные ASCII-таблицы существуют во множестве вариантов. Даже для русского языка существуют несколько таблиц кодирования (распространены Windows-1251 и Koi8-r). Все это создает дополнительные трудности. Например, мы отправляем письмо, написанное в одной кодировке, а получатель пытается прочитать ее в другой. В результате видит кракозябры. Поэтому читающему требуется применить для текста другую таблицу кодирования.

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

Третья проблема - что делать, если в тексте используется несколько языков (например, русский, английский и французский)? Нельзя же использовать две таблицы сразу …

Чтобы решить эти проблемы одним разом была разработана кодировка Unicode.

Стандарт кодирования символов Unicode

Для решения вышеизложенных проблем в начале 90-х был разработан стандарт кодирования символов, получивший название Unicode . Данный стандарт позволяет использовать в тексте почти любые языки и символы.

В Unicode для кодирования символов предоставляется 31 бит (4 байта за вычетом одного бита). Количество возможных комбинаций дает запредельное число: 2 31 = 2 147 483 684 (т.е. более двух миллиардов). Поэтому Unicode описывает алфавиты всех известных языков, даже «мертвых» и выдуманных, включает многие математические и иные специальные символы. Однако информационная емкость 31-битового Unicode все равно остается слишком большой. Поэтому чаще используется сокращенная 16-битовая версия (2 16 = 65 536 значений), где кодируются все современные алфавиты.

В Unicode первые 128 кодов совпадают с таблицей ASCII.

Юникод (по-английски Unicode) - это стандарт кодирования символов. Проще говоря, это таблица соответствия текстовых знаков ( , букв, элементов пунктуации ) двоичным кодам. Компьютер понимает только последовательность нулей и единиц. Чтобы он знал, что именно должен отобразить на экране, необходимо присвоить каждому символу свой уникальный номер. В восьмидесятых, знаки кодировали одним байтом, то есть восемью битами (каждый бит это 0 или 1). Таким образом получалось, что одна таблица (она же кодировка или набор) может вместить только 256 знаков. Этого может не хватить даже для одного языка. Поэтому, появилось много разных кодировок, путаница с которыми часто приводила к тому, что на экране вместо читаемого текста появлялись какие-то странные кракозябры. Требовался единый стандарт, которым и стал Юникод. Самая используемая кодировка - UTF-8 (Unicode Transformation Format) для изображения символа задействует от 1 до 4 байт.

Символы

Символы в таблицах Юникода пронумерованы шестнадцатеричными числами. Например, кириллическая заглавная буква М обозначена U+041C. Это значит, что она стоит на пересечении строки 041 и столбца С. Её можно просто скопировать и потом вставить куда-либо. Чтобы не рыться в многокилометровом списке следует воспользоваться поиском. Зайдя на страницу символа, вы увидите его номер в Юникоде и способ начертания в разных шрифтах. В строку поиска можно вбить и сам знак, даже если вместо него отрисовывается квадратик, хотя бы для того, чтобы узнать, что это было. Ещё, на этом сайте есть специальные (и - случайные) наборы однотипных значков, собранные из разных разделов, для удобства их использования.

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

Сам консорциум Юникода не изобретает новых символов. В таблицы добавляются те значки, которые находят своё применение в обществе. Например, знак рубля активно использовался в течении шести лет прежде чем был добавлен в Юникод. Пиктограммы эмодзи (смайлики) тоже сначала получили широкое применение в Япониии прежде чем были включены в кодировку. А вот товарные знаки, и логотипы компаний не добавляются принципиально. Даже такие распространённые как яблоко Apple или флаг Windows. На сегодняшний день, в версии 8.0 закодировано около 120 тысяч символов.

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 - в настройках клавиатуры. Основное назначение этой таблицы - ввод в текстовые документы символов, которые не расположены на клавиатуре.

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

В заключение

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

Стандарт предложен в 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-мя байтами.

Ряд цифр и букв имеют внешне схожее начертание, малоразличимое при небольшом размере шрифта. Например, цифры "0", "1" и буквы "О", "l" (L). Это является серьёзной проблемой, особенно в тех случаях, когда необходимо строго однозначное прочтение символов. К примеру, при записи ручкой на листке бумаги или печати на принтере своего буквенно-цифрового пароля. Решением данной проблемы пришлось заниматься первым программистам и фонт-дизайнерам (в XX-м веке, в самом начале компьютерной эры). Давно уже, появились специальные контрастные шрифты, такие как Inconsolata, Consolas (системный в OS Windows), Anonymous Pro, Deja Vu Sans Mono и многие другие. Некоторые из них можно бесплатно скачать по ссылкам с сайтов их авторов-создателей и с профильных Интернет-ресурсов.
Смотреть пример:
http://www.levien.com/type/myfonts/inconsolata.html

Если допускается техническими условиями и проектным заданием, то вместо цифрового нуля, в HTML-код ставится "Ø" (latin capital letter O with stroke, с косым штрихом, из модификации латинского алфавита для скандинавских языков - норвежского и датского), приблизительно похожий, своим начертанием, на перечёркнутый пополам нолик. В текстовом редакторе - такой значок берётся, копируется из таблицы спецсимволов (Special Character), и вставляется в нужную позицию в строке. Данный лайфхак-приём будет полезен, если возникают сложности с поиском и установкой на девайс специального фонта. Этот совет позволит сэкономить время и не перепутать цифру "0" (zero) с буквой "О" не только на мониторе вашего ПК, но и на экранах других устройств, где может не оказаться нужного шрифта. Такая форма записи, традиционно, применяется при обозначении на листе бумаги смешанной, буквенно-цифровой информации, например, своего пароля, кода доступа. Примечательно, что даже есть шутливое выражение " ", подчёркивающее важность наличия этого элемента, наделяющего символ определённым смыслом и значением. Графический вид нуля в разных типах шрифтов - можно посмотреть и сравнить их изображение на картинках с помощью специализированного сервиса на странице сайта:
http://www.fileformat.info/info/unicode/char/0030/fontsupport.htm

Рисунок 2

При редактировании и правке текста, перечёркивание неправильно написанного или ненужного символа - производится большим косым крестиком (двумя крест-накрест перекрещивающимися диагональными штрихами равной длины). В текстовом редакторе это осуществляется средствами форматирования - сначала выделяется фрагмент, а затем в меню нажимается последовательность кнопок и вкладок (Format - Character - Font Effects - Strikethrough) для выбора из выпадающих списков необходимого эффекта. Зачёркивание одного или нескольких слов в строчке или в целом абзаце документа - делается с помощью горизонтальной одинарной или двойной линии, достаточной толщины.

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

 
Статьи по теме:
ISBN, УДК, ББК, штриховые коды, выходные данные
Для публикации работы (статьи, книги, диссертации) автору необходимо указать тематический раздел (индекс) существующих классификаций, к которому эта работа относится, и авторский знак. Классификационные индексы издания – это индексы УДК,ББК и ГРНТИ. УДК –
Скачать клавиатурный тренажер для детей на русском бесплатно
Основные возможности уникальный альтернативный вариант для расположения рук на клавиатуре; поддержка различных раскладок и языков; звуковые эффекты для музыкального сопровождения работы; специальные уроки, которые помогают запоминать расположение клави
Не работает тачпад: советы и способы их решения
Сенсорная панель ноутбука (также известная как тачпад) является большим преимуществом данного устройства. Она позволяет обходиться без дополнительного оборудования, занимающего место в сумке, а также решает вопрос свободных портов USB. Однако достаточно ч
Конвертер ватт в амперы Что такое мАч
Мощность – это скорость расходования энергии, выраженная в отношении энергии ко времени: 1 Вт = 1 Дж/1 с. Один ватт равен отношению одного джоуля (единице измерения работы) к одной секунде. Практически каждый человек слышал про параметры электричества как