что входит с понятие символьной текстовой информации

Представление информации: символьный и текстовый способ.

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

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

Текстовые строки. Текстовая (символьная строка) — это конечная последовательность символов. Это может быть осмысленный текст или произвольный набор, короткое слово или целая книга Длина символьной строки — это количество символов в ней. Записывается в память символьная строка двумя способами: либо число, обозначающее длину текста, затем текст, либо текст, а затем разделитель строк.

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

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

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

Иерархическую структуру образуют, например, почтовые адреса (рис.2).

что входит с понятие символьной текстовой информации. Смотреть фото что входит с понятие символьной текстовой информации. Смотреть картинку что входит с понятие символьной текстовой информации. Картинка про что входит с понятие символьной текстовой информации. Фото что входит с понятие символьной текстовой информации

Рис 2 Пример иерархической структуры данных

Адрес одного из домов, расположенных, к примеру на улице 1

Большая Садовая, может выглядеть следующим образом:

Россия\Ростовская область\Ростов\ул. Большая Садовая\д. 1.

Линейная и табличная структуры более просты, чем иерархическая структура, но, если в линейной структуре появляется новый элемент, то упорядоченность сбивается. Например, если в списке студентов появляется новый человек, то расположенный по алфавиту список нарушается.

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

При хранении данных решаются две задачи:

• как сохранить данные;

• как обеспечить быстрый удобный доступ к ним.

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

Файл — это поименованная область на внешнем носителе, содержащая данные определенной длины, обладающая уникальным собственным именем.

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

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

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

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

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

С физической точки зрения, файл — это всего лишь последовательность байтов. Способ использования или отображения этой последовательности (интерпретация!) определяется типом файла — текстовый, звуковой, исполняемый модуль программы и т.п.

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

Источник

Представление символьной информации

Под символом понимаются цифры и буквы (прописные и строчные), знаки препинания и пунктуации, знаки-разделители (пробел, табуляция), специальные знаки ($,

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

Для персональных компьютеров основой кодирования символьной информации является кодовая таблица ASCII (American standard code for information interchange, Американский стандартный код для информационных обменов, табл. 3.2). В этой таблице для значения кода используется 8 бит, что позволяет определить 2 8 = 256 символов с кодами 0. 255.

Коды с 0 по 127 составляют стандартную неизменяемую часть таблицы; коды с 128 по 255 — национальную (расширенную) часть таблицы.

Первые 32 (0. 31) кода управляющие, т.е. если генерировать один из них, то будет выполнена соответствующая команда. Именно поэтому рядом с данными кодами в таблице присутствуют не символы, а мнемонические имена команд, например:

Фрагмент, кодовой таблицы ASCII

Коды с 33 но 127 соответствуют буквам латинского алфавита (прописным и строчным), цифрам, знакам препинания, скобкам и некоторым другим символам.

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

Для русскоязычных пользователей подходит расширение таблицы ASCII, известное как кодовая таблица 866, т.е. в национальных кодировках одному и тому же коду соответствуют разные символы. Этих 128 кодов недостаточно для представления всех символов национальных алфавитов (хотя бы европейских), в связи с чем было разработано множество вариантов кодировки (кодовых таблиц). Так, да я отображения на компьютере символов русского алфавита используются стандартные кодировки КОИ8 (код обмена информацией восьмизначный), Windows-1251. Существование нескольких кодовых таблиц порождает задачу межсистемного преобразования данных.

При нажатии клавиши на клавиатуре символ в двоичном виде (набор из восьми нулей и единиц) будет храниться в памяти компьютера, а на экране дисплея будет отображен соответствующий символ. При этом необходимо понимать, что символ «5» хранится как код 00110101, а число 5 как код 00000101. Для хранения символа «55» требуется 16 бит 0011010100110101, а для числа 55 требуется 8 бит 00110111. При выводе символа на экран или принтер программно-аппаратные средства вывода выполняют обратную перекодировку из цифровой формы в символьную по тем же правилам.

В настоящее время внедряется стандарт Unicode, предполагающего возможность кодирования всех возможных символов в рамках единой кодовой таблицы UCS (Universal Character Set). Изначально в UCS для кодирования символа использовалось 16 бит, что давало 2 16 = 65 536 кодовых позиций. Этого количества вполне хватало для всех постоянно используемых символов (букв всех современных алфавитов, пиктограмм, знаков валют и пр.), но оказалось недостаточно для кодирования малоупотребительных символов (например, идеограмм восточных языков, знаков неиспользуемых письменностей и т.д.) Поэтому UCS расширили, стандартизировав использование 31 бит для кодирования символа, что в теории давало примерно 2,1 млрд кодовых позиций. Число 31 появилось из-за разумного решения разработчиков UCS, что для кодирования не должны быть использованы отрицательные числа, поэтому знаковый бит в 32-разрядной сетке кода можно не учитывать. Впрочем, этого количества хватает с лихвой: на момент написания этой книги в версии Unicode 7.0 содержится «всего» 113 021 символ.

Наличие UCS, однако, не решило проблемы межсистемного преобразования данных: старое программное обеспечение нс поддерживало новый способ кодирования, но техническим причинам хранить кодовую таблицу из 2,1 млрд символов не представлялось возможным и нр. В результате был разработан стандарт, позволяющий представлять символы стандарта Unicode в виде последовательности 16 бит (или двух последовательностей по 16 бит) — UTF-16 (Unicode Transformation Format, формат преобразования из Unicode). Специальные методы кодирования позволили, используя 16 бит, кодировать 1 112 064 позиций, причем сохраняя совместимость со старыми программными продуктами. В настоящее время UTF-16 стал основным стандартом кодирования текстовой информации для ОС семейства Windows.

Первые 65 536 кодов Unicode обозначаются как U—ХХХХ, где X теричная цифра. Например, кириллическому символу «П» соответствует обозначение U+041F. Просмотреть часть кодовой таблицы, изображаемой некоторым шрифтом, в ОС семейства Windows можно, используя инструмент «Таблица символов» (рис. 3.9). Его использование может быть полезно, например, когда требуется ввести символ, который напрямую нс вводится с клавиатуры.

что входит с понятие символьной текстовой информации. Смотреть фото что входит с понятие символьной текстовой информации. Смотреть картинку что входит с понятие символьной текстовой информации. Картинка про что входит с понятие символьной текстовой информации. Фото что входит с понятие символьной текстовой информации

Рис. 3.9. Инструмент «Таблица символов»

Кроме указанного инструмента, есть еще два способа ввода символов Unicode (не все программы для ОС семейства Windows их поддерживают):

В табл. 3.3 приведены некоторые символы Unicode, которые могут быть полезны при наборе текстов, связанных с экономической тематикой. Несоответствие шестнадцатеричных и двоичных кодов (например, для знака евро) объясняется тем, что часть символов Unicode дублируются. При этом набирать символы можно по любому десяНекоторые символы Unicode

Источник

Что входит с понятие символьной текстовой информации

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

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

что входит с понятие символьной текстовой информации. Смотреть фото что входит с понятие символьной текстовой информации. Смотреть картинку что входит с понятие символьной текстовой информации. Картинка про что входит с понятие символьной текстовой информации. Фото что входит с понятие символьной текстовой информации

что входит с понятие символьной текстовой информации. Смотреть фото что входит с понятие символьной текстовой информации. Смотреть картинку что входит с понятие символьной текстовой информации. Картинка про что входит с понятие символьной текстовой информации. Фото что входит с понятие символьной текстовой информации

Форма представления информации очень важна при ее передаче: если человек плохо слышит, то передавать ему информацию в звуковой форме нельзя; если у собаки слабо развито обоняние, то она не может работать в розыскной службе. В разные времена люди пе­редавали информацию в различной форме с помощью: речи, дыма, барабанного боя, звона колоколов, письма, телеграфа, радио, телефо­на, факса. Независимо от формы представления и способа передачи информации, она всегда передается с помощью какого-либо языка.
На уроках математики вы используете специальный язык, в основе которого — цифры, знаки арифметических действий и отношений. Они составляют алфавит языка математики. На уроках физики при рассмотрении какого-либо физического явления вы используете характерные для данного языка специальные символы, из которых составляете формулы. Формула — это слово на языке физики.
На уроках химии вы также используете определенные символы, знаки, объединяя их в «слова» данного языка.
Существует язык глухонемых, где символы языка — определенные знаки, выражаемые мимикой лица и движениями рук.
Основу любого языка составляет алфавит — набор однозначно оп­ределенных знаков (символов), из которых формируется сообщение. Языки делятся на естественные (разговорные) и формальные. Алфавит естественных языков зависит от национальных традиций. Формальные языки встречаются в специальных областях человеческой деятельности (математике, физике, химии и т. д.). В мире насчитывается около 10 000 разных языков, диалектов, наречий. Многие разговорные языки произошли от одного и того же языка. Например, от латинского языка образовались французский, испанский, итальянский и другие языки.

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

В процессе развития человеческого общества люди выработали большое число языков. Примеры языков:

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

Все языки можно разделить на естественные и искусственные.

Естественными называются “обычные”, “разговорные” языки, которые складываются стихийно и в течение долгого времени. История каждого такого языка неотделима от истории народа, владеющего им. Естественный язык, предназначенный, прежде всего, для повседневного общения, имеет целый ряд своеобразных черт:

Основными функциями естественного языка являются:

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

Любой язык –– и естественный и искусственный –– обладает набором определенных правил. Они могут быть явно и строго сформулированными (формализованными), а могут допускать различные варианты их использования.

Формализованный (формальный) язык –– язык, характеризующийся точными правилами построения выражений и их понимания. Он строится в соответствии с четкими правилами, обеспечивая непротиворечивое, точное и компактное отображение свойств и отношений изучаемой предметной области (моделируемых объектов).

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

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

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

Формальные языки часто конструируются на базе языка математики. Веком бурного развития различных формальных языков можно считать XX век.

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

Возникновение языков программирования приходится на начало 50-х годов XX века.

Языков программирования и их диалектов (разновидностей) насчитывается несколько тысяч. Классифицировать их можно по-разному. Некоторые авторы разбивают все многообразие языков программирования на процедурные и декларативные. В процедурных языках преобразование данных задается с помощью описания последовательности действий над ними. В декларативных языках преобразование данных задается посредством описания отношений между самими данными. Согласно другой классификации, языки программирования можно разделить на процедурные, функциональные, логические, объектно-ориентированные. Однако любая классификация несколько условна, поскольку, как правило, большинство языков программирования включает в себя возможности языков разных типов.Особое место среди языков программирования занимают языки, обеспечивающие работу систем управления базами данных (СУБД). Часто в них выделяют две подсистемы: язык описания данных и язык манипулирования

Теория кодирования – это раздел теории информации, связанный с задачами кодирования и декодирования сообщений, поступающих к потребителям и посылаемых из источников информации.

Теория кодирования близка к древнейшему искусству тайнописи – криптографии. Над разработкой различных шифров трудились многие известные ученые: философ Ф. Бэкон, математики Д.Кардано, Д. Валлис. Одновременно с развитием методов шифровки развивались приемы расшифровки, или криптоанализа.

В середине ХIХ в. ситуация изменилась. Изобретение телефона и искрового телеграфа поставило перед учеными и инженерами проблему создания новой теории кодирования. Первой ориентированной на технику системой кодирования оказалась азбука Морзе, в которой принято троичное кодирование (точка, тире, пауза).

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

Двоичный алфавит состоит из двух цифр 0 и 1.

Цифровые ЭВМ (персональные компьютеры относятся к классу цифровых) используют двоичное кодирование любой информации. В основном это объясняется тем, что построить техническое устройство, безошибочно различающее 2 разных состояния сигнала, технически оказалось проще, чем то, которое бы безошибочно различало 5 или 10 различных состояний.

К недостаткам двоичного кодирования относят очень длинные записи двоичных кодов, что затрудняет работу с ними.

ДВОИЧНОЕ КОДИРОВАНИЕ СИМВОЛЬНОЙ (ТЕКСТОВОЙ) ИНФОРМАЦИИ

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

Для кодирования текстов используются различные таблицы перекодировки. Важно, чтобы при кодировании и декодировании одного и того же текста использовалась одна и та же таблица.

Наиболее популярные таблицы перекодировки: ДКОИ-8, ASCII, CP1251, Unicode.

Исторически сложилось, что в качестве длины кода для кодирования символов было выбрано 8 бит или 1 байт. Поэтому чаще всего одному символу текста, хранимому в компьютере, соответствует один байт памяти.

Различных комбинаций из 0 и 1 при длине кода 8 бит может быть 28 = 256, поэтому с помощью одной таблицы перекодировки можно закодировать не более 256 символов. При длине кода в 2 байта (16 бит) можно закодировать 65536 символов.

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

т. е. для представления текстовой информации можно использовать алфавит мощностью 256 символов.

Суть кодирования заключается в том, что каждому символу ставят в соответствие двоичный код от 00000000 до 11111111 или соответствующий ему десятичный код от 0 до 255.

Одному и тому же двоичному коду ставится в соответствие различные символы.

Двоичный кодДесятичный кодКОИ8СР1251СР866МасISO
11000010194бВТ

Начиная с 1997 г. последние версии Microsoft Windows&Office поддерживают новую кодировку Unicode, которая на каждый символ отводит по 2 байта, а, поэтому, можно закодировать не 256 символов, а 65536 различных символов.

Для определения числового кода символа в кодировке Windows (СР1251) нужно при помощи мыши или клавиш управления курсором выбрать нужный символ, затем щелкнуть по кнопке Клавиша. После этого на экране появляется диалоговая панель Настройка, в которой в нижнем левом углу содержится десятичный числовой код выбранного символа.

Источник

Что входит с понятие символьной текстовой информации

Юнико́д — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.
Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода». Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, при этом становится ненужным переключение кодовых страниц.
Стандарт состоит из двух основных разделов: универсальный набор символов и семейство кодировок. Универсальный набор символов задаёт однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.
Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F (см. Кириллица в Юникоде).

Универсальная система кодирования (Юникод) представляет собой набор графических символов и способ их кодирования для компьютерной обработки текстовых данных.
Графические символы — это символы, имеющие видимое изображение. Графическим символам противопоставляются управляющие символы и символы форматирования. Графические символы включают в себя следующие группы: буквы, содержащиеся хотя бы в одном из обслуживаемых алфавитов; цифры; знаки пунктуации; специальные знаки (математические, технические, идеограммы и пр.); разделители.
Юникод — это система для линейного представления текста. Символы, имеющие дополнительные над- или подстрочные элементы, могут быть представлены в виде построенной по определённым правилам последовательности кодов (составной вариант, composite character) или в виде единого символа (монолитный вариант, precomposed character).

Модифицирующие символы
Графические символы в Юникоде подразделяются на протяжённые и непротяжённые (бесширинные). Непротяжённые символы при отображении не занимают места в строке. К ним относятся, в частности, знаки ударения и прочие диакритические знаки. Как протяжённые, так и непротяжённые символы имеют собственные коды. Протяжённые символы иначе называются базовыми, а непротяжённые — модифицирующими; причём последние не могут встречаться самостоятельно. Например, символ «á» может быть представлен как последовательность базового символа «a» (U+0061) и модифицирующего символа « ́» (U+0301) или как монолитный символ «á» (U+00C1).
Особый тип модифицирующих символов — селекторы варианта начертания. Они действуют только на те символы, для которых такие варианты определены. В версии 5.0 варианты начертания определены для ряда математических символов, для символов традиционного монгольского алфавита и для символов монгольского квадратного письма.

Термины «композиция» и «декомпозиция» понимают под собой соответственно соединение или разложение символов на составные части.

Примеры

Исходный текстNFDNFCNFKDNFKC
FrançaisFranc\u0327aisFran\xe7aisFranc\u0327aisFran\xe7ais
А, Ё, Й\u0410, \u0415\u0308, \u0418\u0306\u0410, \u0401, \u0419\u0410, \u0415\u0308, \u0418\u0306\u0410, \u0401, \u0419
\u304b\u3099\u304c\u304b\u3099\u304c
Henry IVHenry IVHenry IVHenry IVHenry IV
Henry ⅣHenry \u2163Henry \u2163Henry IVHenry IV

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

С академическими целями добавлены многие исторические письменности, в том числе: руны, древнегреческая, египетские иероглифы, клинопись, письменность майя, этрусский алфавит.

Способы представления
Юникод имеет несколько форм представления: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). Была разработана также форма представления UTF-7 для передачи по семибитным каналам, но из-за несовместимости с ASCII она не получила распространения и не включена в стандарт. 1 апреля 2005 годабыли предложены две шуточные формы представления: UTF-9 и UTF-18 (RFC 4042).
В Microsoft Windows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE. В UNIX-подобных операционных системах GNU/Linux,BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.

UTF-8
UTF-8 — представление Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими 8-битные символы. Текст, состоящий только из символов с номером меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой байт со значением меньше 128 изображает символ ASCII с тем же кодом. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт (на деле, только до 4 байт, поскольку в Юникоде нет символов с кодом больше 10FFFF, и вводить их в будущем не планируется), в которых
первый байт всегда имеет вид 11xxxxxx, а остальные — 10xxxxxx.
Формат UTF-8 был изобретён 2 сентября 1992 года Кеном Томпсоном и Робом Пайком и реализован в Plan 9. Сейчас стандарт UTF-8 официально закреплён в документах RFC 3629 и ISO/IEC 10646 Annex D.
Символы UTF-8 получаются из Unicode следующим образом:

Порядок байтов
В потоке данных UTF-16 старший байт может записываться либо перед младшим, либо после младшего. Аналогично существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE.
Для определения формата представления Юникода в начало текстового файла записывается сигнатура — символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемыйметкой порядка байтов (англ. byte order mark, BOM). Это позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также этот способ иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов. Файлы, следующие этому соглашению, начинаются с таких последовательностей байтов:UTF-8 EF BB BFUTF-16BE FE FFUTF-16LE FF FEUTF-32BE 00 00 FE FFUTF-32LE FF FE 00 00
К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом (хотя реальные тексты редко начинаются с него).
Файлы в кодировках UTF-16 и UTF-32, не содержащие BOM, должны иметь порядок байтов big-endian (unicode.org).

Юникод и традиционные кодировки
Внедрение Юникода привело к изменению подхода к традиционным 8-битным кодировкам. Если раньше кодировка задавалась шрифтом, то теперь она задаётся таблицей соответствия между данной кодировкой и Юникодом. Фактически 8-битные кодировки превратились в форму представления некоторого подмножества Юникода. Это намного упростило создание программ, которые должны работать с множеством разных кодировок: теперь, чтобы добавить поддержку ещё одной кодировки, надо всего лишь добавить ещё одну таблицу перекодировки в Юникод.
Кроме того, многие форматы данных позволяют вставлять любые символы Юникода, даже если документ записан в старой 8-битной кодировке. Например, в HTML можно использоватькоды с амперсандом.

Реализации
Большинство современных операционных систем в той или иной степени обеспечивают поддержку Юникода.
В операционных системах семейства Windows NT для внутреннего представления имён файлов и других системных строк используется двухбайтовая кодировка UTF-16LE. Системные вызовы, принимающие строковые параметры, существуют в однобайтном и двухбайтном вариантах. Подробнее см. в статье Юникод в операционных системах Microsoft.
UNIX-подобные операционные системы, в том числе GNU/Linux, BSD, Mac OS X, используют для представления Юникода кодировку UTF-8. Большинство программ могут работать с UTF-8 как с традиционными однобайтными кодировками, не обращая внимания на то, что символ представляется как несколько последовательных байт. Для работы с отдельными символами строки обычно перекодируются в UCS-4, так что каждому символу соответствует машинное слово.
Одной из первых успешных коммерческих реализаций Юникода стала среда программирования Java. В ней принципиально отказались от 8-битного представления символов в пользу 16-битного. Сейчас большинство языков программирования поддерживают строки Юникода, хотя их представление может различаться в зависимости от реализации.

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

Microsoft Windows
Начиная с Windows 2000, служебная программа «Таблица символов» (charmap.exe) показывает все символы в ОС и позволяет копировать их в буфер обмена. Похожая таблица есть, например, в Microsoft Word.
Иногда можно набрать шестнадцатеричный код, нажать Alt+X, и код будет заменён на соответствующий символ, например, в WordPad, Microsoft Word. В редакторах Alt+X выполняет и обратное преобразование.
Во многих программах MS Windows, чтобы получить символ Unicode, нужно при нажатой клавише Alt набрать десятичное значение кода символа на цифровой клавиатуре. Например, полезными при наборе кириллических текстов будут комбинации Alt+0171 («) и Alt+0187 (»). Интересны также комбинации Alt+0133 (…) и Alt+0151 (—).

Macintosh
В Mac OS 8.5 и более поздних версиях поддерживается метод ввода, называемый «Unicode Hex Input». При зажатой клавише Option требуется набрать четырёхзначный шестнадцатеричный код требуемого символа. Этот метод позволяет вводить символы с кодами, большими U+FFFF, используя пары суррогатов; такие пары операционной системой будут автоматически заменены на одиночные символы. Этот метод ввода перед использованием нужно активизировать в соответствующем разделе системных настроек и затем выбрать как текущий метод ввода в меню клавиатуры.
Начиная с Mac OS X 10.2, существует также приложение «Character Palette», позволяющее выбирать символы из таблицы, в которой можно выделять символы определённого блока или символы, поддерживаемые конкретным шрифтом.

GNU/Linux
В GNOME также есть утилита «Таблица символов», позволяющая отображать символы определённого блока или системы письма и предоставляющая возможность поиска по названию или описанию символа. Когда код нужного символа известен, его можно ввести в соответствии со стандартом ISO 14755: при зажатых клавишах Ctrl и Shift ввести шестнадцатеричный код (начиная с некоторой версии GTK+ ввод кода нужно предварить нажатием клавиши «U»). Вводимый шестнадцатеричный код может иметь до 32 бит в длину, позволяя вводить любые символы Юникода без использования суррогатных пар.
Все приложения X Window, включая GNOME и KDE, поддерживают ввод при помощи клавиши Compose. Для клавиатур, на которых нет отдельной клавиши Compose, для этой цели можно назначить любую клавишу — например, Caps Lock.
Консоль GNU/Linux также допускает ввод символа Юникода по его коду — для этого десятичный код символа нужно ввести цифрами расширенного блока клавиатуры при зажатой клавише Alt. Можно вводить символы и по их шестнадцатеричному коду: для этого нужно зажать клавишу AltGr, и для ввода цифр A—F использовать клавиши расширенного блока клавиатуры от NumLock до Enter (по часовой стрелке). Поддерживается также и ввод в соответствии с ISO 14755. Для того чтобы перечисленные способы могли работать, нужно включить в консоли режим Юникода вызовом unicode_start(1) и выбрать подходящий шрифт вызовом setfont(8).
Mozilla Firefox для Linux поддерживает ввод символов по ISO 14755.
источник

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *