Сколько символов содержит алфавит, используемый в компьютерной системе символов

Обновлено: 21.11.2024

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

Западноевропейские алфавиты

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

Японский текст

Японский текст состоит из трех разных шрифтов, смешанных вместе:

Идеограммы кандзи заимствованы из китайского языка

Хирагана и катакана, два фонетических алфавита (или слоговых письма)

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

Кандзи состоит из десятков тысяч символов, но количество часто используемых символов с годами неуклонно сокращается. В настоящее время часто используется только около 3500 иероглифов, хотя словарный запас среднестатистического японского писателя составляет около 2000 иероглифов кандзи. Тем не менее компьютерные системы должны поддерживать более 7000 символов в соответствии с требованиями японского промышленного стандарта (JIS). Кроме того, имеется около 170 символов хираганы и катаканы. В среднем 55 % японского текста составляют хирагана, 35 % кандзи и 10 % катакана. Арабские цифры и латинские буквы также присутствуют в тексте на японском языке.

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

Корейский текст

Текст на корейском языке может быть написан с использованием фонетической системы письма под названием хангыль. В хангыле более 11 000 иероглифов, состоящих из согласных и гласных, известных как хамо. В корейских компьютерных системах обычно используется около 3000 иероглифов из всего словаря иероглифов хангыль. В корейском языке также используются идеограммы, основанные на изобретенном в Китае наборе, называемом ханджа. Для корейского текста требуется более 6000 символов ханджа. Ханджа используется в основном, чтобы избежать путаницы, когда хангыль может быть двусмысленным. Символы хангыль образуются путем сочетания согласных и гласных. После того, как эти символы объединены, они могут составить один слог, который является символом хангыль. Символы хангыль часто располагаются квадратом, так что группа занимает то же место, что и символ ханджа. В корейском тексте также присутствуют арабские цифры, латинские буквы и специальные символы.

Тайский текст

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

Китайский текст

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

В Китайской Народной Республике около 7000 часто используемых символов ханьцзы в GB2312 (локаль zh_CN.EUC), более 20 000 символов в кодировке GBK (zh_CN.GBK< /tt>) и около 30 000 символов в кодировке GB18030-2000 (zh_CN.GB18030), включая все символы CJK Unified Ideographs Extension A, определенные в Unicode 6.0.

На Тайване чаще всего используются кодировки CNS11643-1992 (локаль zh_TW.EUC) и Big5 (локаль zh_TW.BIG5). У них около 13 000 символов ханьцзы.

В Гонконге в кодировку Big5 было добавлено 4702 символа, которые стали кодировкой Big5-HKSCS (локаль zh_HK.BIG5HK).

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

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

Несколько фонетических систем представляют китайский язык. В Китайской Народной Республике наиболее распространенным является пиньинь, который использует латинские буквы и широко используется на Западе для географических названий, таких как Пекин. Система Уэйда-Джайлса — старая фонетическая система, ранее использовавшаяся для географических названий, таких как Пекин. Вместо этого на Тайване часто используется чжуинь (или бопомофо), фонетический алфавит с уникальными формами букв.

Текст на иврите

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

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

Текст на хинди

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

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

Персонажи являются основой компьютерных систем. Они используются для (1) ввода (например, через клавиатуру или через оптическое сканирование) и вывода (например, на экран или на печатные страницы), (2) написания программ на языках программирования, (3) как основа некоторых операционные системы (такие как Linux), которые в основном представляют собой наборы файлов простого текста (т.е. удобочитаемых символов) и (4) для хранения и передачи несимвольных данных (например, передачи изображения по электронной почте с использованием base64).

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


Наборы символов

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

Некоторые языки имеют или имели более одного набора символов. Например, в японском языке используются три набора символов: основной — это китайские иероглифы (т. е. иероглифы, которые используются для написания китайского языка), но он дополнен двумя слоговыми < /i> (называется хирагана и катакана). Корейский язык в настоящее время пишется в основном с помощью уникального алфавита (называемого хангыль), но иногда все еще используются китайские иероглифы.

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


Символы и глифы

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

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

В разных системах письма используются разные гарнитуры, а количество гарнитур зависит от системы письма и языка. Тысячи шрифтов были разработаны для использования в английском и других западноевропейских языках, и они варьируются от очень простого sans serif Geneva и Courier (который широко использовался для пишущих машинок) до Times (который часто используется в печати периодических изданий и книг) до богато украшенной готики (которая используется в основном в декоративных целях). Символы, написанные шрифтом без засечек, не имеют маленьких крючков на концах, которые, как считается, облегчают чтение.

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


Классификация символов

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

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

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

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

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

Алфавитные и слоговые письма также часто используют логограммы и логографические значения. Наиболее распространенным примером являются арабские цифры, каждая из которых имеет одинаковое значение независимо от того, на каком языке или диалекте она используется и как произносится. Другими примерами являются такие символы, как амперсанд и знак доллара. Кроме того, отдельные буквы иногда имеют не только фонетическое значение: например, в английском языке буква A часто указывает на высокое качество, а буква X иногда указывает на неизвестное или рейтинг для взрослых.


Происхождение символов

Самая древняя известная система письма — клинопись (названная в честь клиновидной формы знаков, которые были нанесены на глиняные таблички тростниковыми стилусами), возникшая в Шумере (в южной части сейчас Ирак) более 5000 лет назад. За ним последовало развитие письменности в Египте и долине Инда (в западной Индии).

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

Большинство ученых считают, что первые алфавиты возникли на Ближнем Востоке, возможно, в результате эволюции или, по крайней мере, под влиянием клинописи или египетских иероглифов. Первым широко используемым алфавитом, по-видимому, был алфавит финикийцев (который возник на территории современного Ливана), который использовался по крайней мере к 1200 г. до н.э. Этот алфавит содержал 22 буквы для согласных звуков и не имел букв для гласных (как в случае с еврейским и арабским алфавитами, которые произошли от него). Финикийцы распространили свой алфавит по всему Средиземноморью, в том числе среди греков и этрусков (которые предшествовали римлянам в Италии).

Лиминский алфавит был адаптирован в основном из этрусского алфавита в 7 веке до нашей эры. В нем были только буквы верхнего регистра (т. е. заглавные), и не было ни знаков препинания, ни пробелов между словами. Числа записывались семью буквами алфавита (т. е. римскими цифрами), а не арабскими цифрами.

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

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


Количество символов

Размер набора символов сильно зависит от языка. Языки, написанные с помощью алфавитов, обычно имеют наименьшее количество символов, а те, которые используют логографические системы письма, — больше всего. Среди первых язык с наименьшим алфавитом (и, следовательно, с наименьшим общим количеством символов) — это язык ротокас (на нем говорят на Бугенвиле, острове к востоку от Папуа-Новой Гвинеи), который содержит всего одиннадцать букв, а язык с самый большой алфавит — армянский, состоящий из 39 букв.

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

Японский язык занимает второе место по количеству иероглифов, поскольку в нем активно используются китайские иероглифы. Примерно 2000 таких иероглифов учат в начальной и средней школе, а хорошо образованный человек будет знать не менее 3500 иероглифов. Хирагана и катакана, две слоговые азбуки, используемые для дополнения китайских иероглифов, содержат по 46 символов каждая.

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


Персонажи и компьютеры

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

ASCII (аббревиатура от Американского стандартного кода для обмена информацией, произносится как ask-ee) – это фактическая кодировка (т. е. набор кодовых чисел), используемая компьютерами и коммуникационным оборудованием для представления текста. Это однобайтовая байтовая (т. е. восьмибитная) система кодирования (т. е. использует один байт для представления каждого символа), а использование первых семи битов позволяет представить максимум 128 символов. ASCII основан на символах, используемых для письма на английском языке (включая как прописные, так и строчные буквы). Расширенные версии (в которых используется восьмой бит для предоставления максимум 256 символов) были разработаны для использования с другими наборами символов.

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

Поэтому Юникод был разработан как средство, позволяющее компьютерам работать со всем набором символов, используемых в человеческих языках. Его цель - предоставить уникальную кодировку для каждого символа, который существует в настоящее время или когда-либо существовал (но не для их вариантов глифов).Это достигается путем представления каждого символа двумя или более байтами, что значительно увеличивает общее количество возможных уникальных кодировок символов. В версии 2.0 Unicode (выпущенной в 1996 г.) указано 38 885 символов, в версии 3.0 (выпущенной в 2000 г.) - 49 194, а в версии 4.0 (выпущенной в 2003 г.) - 96 382. Хотя Unicode добился значительных успехов, работа над ним еще не завершена.

Ряд проблем, связанных с использованием символов и систем письма на компьютерах, еще предстоит полностью решить. Они включают (1) разногласия в отношении некоторых китайских иероглифов относительно того, что является базовым символом, а что является вариантом глифа, (2) эффективные системы ввода с клавиатуры для языков, использующих большое количество символов, (3) программное обеспечение, которое позволит легко ввод и отображение символов, которые расположены не горизонтально слева направо (например, справа налево или вертикально), (4) политические и националистические споры о символах, (5) символы, которые могут иметь несколько форм в зависимости от того, где они используются в словах и (6) языках, использующих несколько наборов символов.

Создана 12 августа 2004 г. Обновлена ​​12 октября 2007 г.
Авторские права © 2004 - 2007 The Linux Information Project. Все права защищены.

Символ, обычно сокращенно обозначаемый как "char", представляет собой компьютерный символ, букву или число. [1] Клавиатура — это устройство ввода, которое вводит символ при нажатии клавиши. В Scratch символы используются в строках, аргументах и ​​любых ситуациях в редакторе Scratch или воспроизводимом проекте, где требуется текст.

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

Содержание

Типы персонажей

Письма

Буквы — это символы алфавита. В английском языке они состоят из строчных и прописных букв в диапазоне от букв «A» до «Z». Комбинируя буквы, можно создавать слова, а комбинируя слова, можно создавать предложения. «Персонаж» — это просто более универсальный мир, который включает в себя буквы и другие символы.

Символы

Эмодзи

Эмодзи – это небольшие изображения и смайлики, являющиеся частью технического стандарта Unicode [3], который применяется на большинстве компьютеров, телефонов и подобных устройств. Они являются распознаваемыми компьютерными символами и даже могут использоваться в названиях проектов и самих проектах (начиная с Scratch 3.0). В последнее десятилетие популярность смайликов резко возросла благодаря их забавному и визуальному характеру, а также легкому доступу на мобильных телефонах. Чтобы ввести эмодзи в проект, существуют различные способы:

  • Выполните ввод на мобильном телефоне со страницы проекта.
  • Скопируйте и вставьте эмодзи из другого интернет-источника
  • Использование экранной клавиатуры с поддержкой эмодзи на компьютере

В Windows 10 экранная клавиатура по умолчанию не поддерживает эмодзи. Однако есть вторая экранная клавиатура, называемая «Сенсорная клавиатура», которая поддерживает смайлики. Сенсорную клавиатуру можно использовать даже без сенсорного экрана; он поддерживает традиционную компьютерную мышь. Чтобы включить его, щелкните правой кнопкой мыши панель задач и выберите «Показать кнопку сенсорной клавиатуры». Оттуда значок сенсорной клавиатуры появится в правой части панели задач. На виртуальной клавиатуре кнопка «смайлик» отображает параметры эмодзи. Другой способ – нажать клавишу с логотипом Windows и клавишу с точкой, чтобы отобразить набор смайликов и каомодзи.

Числа

Числа также являются символами, часто используемыми для представления количества в контексте математических операций или в предложении. Отдельные числовые символы можно комбинировать для получения более крупных или более точных чисел. Основные числа находятся в диапазоне от «0» до «9». Десятичные числа часто используют "." символ для представления десятичной точки. В то время как "." сам по себе символ является символом, а не числом, его можно использовать с числом.

Непечатаемые символы

Некоторые символы "невидимы", так как компьютеры не отображают их на экране. [4] Примером этого является клавиша «escape». Другие примеры включают символ для клавиши «enter», клавиши «tab» и даже значения «null». Null — это не то, что имеет какое-либо визуальное представление, но важно в компьютерном программировании. В языке C символ "null" используется для обозначения конца строки.

Ограничения

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

Строки

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

Извлечение символа из строки

В Scratch буква () в блоке [] используется для извлечения одного символа из строки. Например, если необходимо получить первую букву слова «Hello World», в блок можно ввести аргументы, чтобы сформировать букву (1) слова [Hello World] .

Кодирование

Компьютер не распознает символы, как человек. Человек видит хмурый смайлик и интерпретирует его как грусть. Человек видит числа и ассоциирует с ними математику. Компьютер — это просто машина, которая представляет символы в стандартизированных форматах, известных как кодировка. [5] По сути, всем символам присвоены кодовые значения. Обычно значения кода организованы для удобства программиста. Например, коды букв будут упорядочены по алфавиту. Числа также будут в простом порядке.

ASCII

ASCII — это ограниченный набор символов из-за его истории. В прошлом компьютеры могли обрабатывать только до 8 бит, поэтому набор символов ASCII был ограничен 127 символами. В основном это были символы, наиболее связанные с английским языком. В следующей таблице приведены фрагменты некоторых символов из набора: [7]

Стандарты сопоставления

В разных странах разные символы ANSI представляют разные значения. Сама система кодирования (ANSI) использует ту же логику, но то, какие коды связаны с какими символами, различается. [9] Стандарт отображения — это метод определения кодов для желаемых символов. ISO-8859 и его варианты являются наиболее распространенными схемами сопоставления западных языков в ANSI. [10]

Ввод символов с клавиатуры

Клавиатуры имеют ограниченное количество символов. Если, например, кто-то хочет ввести символ «°», клавишу «alt» можно удерживать нажатой, в то время как «0176» набирается на правой цифровой клавиатуре клавиатуры. [11] «176» — это соответствующий код знака градуса в ANSI. Эта функция встроена в большинство клавиатур.

UTF-8 — это более современный стандарт, охватывающий более миллиона символов и не требующий обязательного использования нескольких байтов на символ. Стандарт можно использовать во всем мире, позволяя использовать китайские символы в том же тексте, что и испанские символы. [12] UTF-8 кодирует в определенные биты информацию о длине последовательности битов для представления символа. Например, если определенный символ имеет очень длинный код для представления самого себя, несколько битов будут действовать как «флажок», чтобы предупредить компьютер о том, что это более длинный символ. Затем компьютер будет учитывать следующий байт для одного символа.

Некоторые символы представлены в кодировке меньшим количеством байтов, чем другие. Таким образом, это позволяет файлам быть меньше по размеру, чем кодировка, которая обрабатывает каждый символ с одинаковым количеством байтов. Кодировка символов USC4 представляет все символы с 4 байтами. В то время как некоторые символы в UTF-8 могут быть представлены 4 байтами, многие представлены только 1 или 2. В следующей таблице показано количество байтов, необходимых для диапазона символов: [13]

Из-за этой настройки все исходные символы ASCII (0–127) по-прежнему занимают всего 1 байт в кодировке UTF-8. Наименее распространенные символы занимают большее количество байтов.

Другие варианты

Также существуют UTF-16 и UTF-32, но они менее распространены, чем UTF-8. UTF-16 использует минимум 16 бит или 2 байта для каждого символа. [14] Можно было бы предположить, что это сделает файлы больше, чем UTF-8, но некоторые символы в символе UTF-8, которые представлены 3 байтами, могут быть представлены 2 байтами в UTF-16. Символ, представленный 16 битами в UTF-8, на самом деле занимает 3 байта, потому что некоторые биты используются для обозначения того, что необходимо несколько байтов. В UTF-16 16-битный символ может быть представлен 2 байтами.

Юникод

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

Юникод — это стандартизированный набор символов, в котором может храниться более миллиона символов.UTF-8 кодирует набор символов Unicode. Сам Unicode не указывает, как кодировать свои данные в двоичный код, это просто большая база данных кодовых значений многих символов. [15] Unicode постоянно пополняется новыми значениями, так как еще не все заполнено.

Использование в Scratch

Предварительное знание стандартов компьютерного кодирования символов может быть полезным при разработке проектов Scratch. В частности, использование облачных переменных для хранения большего количества данных, чем значение счетчика или рекорда, требует специальной системы кодирования. Облачные переменные способны хранить только числа, поэтому, если необходимо сохранить текст, его необходимо преобразовать в числовые коды. Это соответствует тому, как работают компьютеры, поскольку они переводят текст в последовательности "1" и "0".

Подобно кодировке ASCII, можно разработать систему, в которой каждому символу назначается код, а облачная переменная содержит последовательность кодов. Когда данные должны быть прочитаны, их необходимо декодировать путем поиска символов, связанных с их соответствующими кодовыми значениями. Поскольку облачные переменные позволяют использовать числа от 0 до 9, меньшее количество цифр может представлять тот же диапазон символов, что и ASCII, для которого требуется 7 цифр (битов) в двоичном формате на символ.

UTF-8 также можно воспроизвести с помощью облачных переменных, используя некоторые цифры для представления того, сколько других цифр являются частью одного и того же символа перед переходом к следующему. Учтите, что первое число в облачной переменной означает, сколько следующих цифр составляет код следующего символа. Если закодированные данные облачной переменной — 3 564 2 98 , то код первого символа — «564», за которым следует «98». «3» означает, что в первом символе 3 цифры, а «2» означает, что во втором символе 2 цифры.

Тогда можно использовать список, где индекс соответствует коду символа. Этот тип системы был бы полезен, если проект должен распознавать большое количество символов. Ограничения можно установить, разрешив только определенные символы, используя более простую систему кодирования на основе ASCII с фиксированным количеством цифр на символ. Это, однако, может вызвать проблемы, если чье-то имя пользователя с «недопустимым» символом попытается закодировать в облачную переменную. Такие обстоятельства могли бы объясняться более сложной логикой.

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

Для начала мы можем предложить способ сопоставления букв и других символов (пунктуации, пробела и т. д.) с числами. Например, пусть А представлено как число 1, В как 2, С как 3 и так далее. В английском алфавите 26 букв, поэтому нам потребуется всего 5 бит. (2⁵ равно 32, так что у нас даже останется несколько цифр для знаков препинания.)

Упражнение: используя описанную выше схему, декодируйте слово, представленное битами 00011 00001 10100

Если в наших текстовых сообщениях необходимо различать прописные и строчные буквы, нам потребуется более 5 бит. В верхнем регистре от A до Z содержится 26 символов, в нижнем регистре от a до z — еще 26, так что всего 52. 2⁶ — это 64, поэтому 6 бит покроют его, а еще несколько будут доступны для пунктуации.

А как насчет включения цифр в наш текст? Если мы хотим отправить текстовое сообщение «Амазон предлагает 20% скидку на учебники», мы не можем представить это «20» как 10100 в двоичном формате, потому что это будет противоречить представлению буквы «Т».

Вместо этого нам нужно добавить пробел для стандартных десяти цифр в качестве символов. Включая те, которые написаны прописными и строчными буквами, это означает, что нам нужно как минимум 62 символа. Технически это умещается в 6 бит, но у нас будет очень мало места для пунктуации и символа, представляющего пробел. Таким образом, для практических целей мы используем до 7 бит на символ. 2⁷ равно 128, так что теперь есть много места для других символов.

Кроме того, может быть способ «повторно использовать» буквенные представления в качестве цифр. Нам просто нужно было бы поставить перед ними маркер, который означает «это число», или же потребовать, чтобы получатель угадал из контекста. Так обстоит дело со шрифтом Брайля, системой письма для слабовидящих, основанной на 6-битных символах. (Каждое из шести мест может быть поднято или нет.) Символ Брайля для буквы «А» совпадает с цифрой «1».

Простые кодировки, которые я предложил в предыдущем разделе, основаны на фиксированном количестве битов на символ — будь то 5, 6 или 7. Один из способов проиллюстрировать это — дерево — см. этот файл:

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

Это конкретное дерево является бинарным деревом, а это означает, что каждый узел является либо листом, либо ветвью с ровно двумя дочерними элементами. Что хорошо в бинарном дереве, так это то, что пути от корня к листу точно соответствуют двоичным числам. Просто представьте, что ноль идет влево по дереву, а единица — вправо. Затем число 01101 (например) соответствует левой-правой-правой-левой-правой, которая приземляется на листе с пометкой N. Расшифруйте сообщение в двоичном формате, написанном под деревом.

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

В этом случае разные буквы могут иметь очень разное количество битов, представляющих их. Например, E — кратчайший путь, представляющий всего 3 бита. X — очень длинный путь, представляющий 10 бит. Расшифруйте слово, данное в двоичном формате в правом верхнем углу страницы.

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

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

При фиксированной кодировке каждый символ состоит ровно из 5 бит, поэтому вся последовательность слов состоит из 115 бит. (В этом упражнении мы не учитываем кодирование пробелов между словами.)

Сравните это с переменной кодировкой. Почти каждое слово имеет более короткое представление. Единственным исключением является «QUUX», которое, конечно же, не является английским словом. Но он представляет собой случай слова с редко используемыми буквами, и размер кодировки этого слова существенно увеличился с 20 до 32 бит. В целом, второе дерево по-прежнему сжимается, пока вы в основном используете английские слова с высокочастотными буквами.

Управляющие символы находятся в диапазоне от 0 до 31 (с основанием десять). Они не имеют визуального представления, а вместо этого направляют устройство отображения определенным образом. Многие из них сейчас устарели, но, пожалуй, самый важный из них — это 10₁₀ = A₁₆ = 0001010₂, символ «новой строки». Всякий раз, когда вы нажимаете клавишу ВВОД для перехода к следующей строке, этот символ вставляется в ваш документ.

Символ 32 — это пробел, а символы 33–63 в основном содержат знаки препинания. Цифры находятся в позициях с 48 по 57. Их легко распознать в двоичном формате: все они начинаются с 011, а затем младшие четыре бита соответствуют цифре. Таким образом, вы можете с первого взгляда сказать, что 0110101₂ = 35₁₆ — это цифра «5».

Диапазон 64–95 в основном состоит из прописных букв, а 96–127 — в основном из строчных. (Оба диапазона включают еще несколько знаков пунктуации и квадратных скобок.) Эти числа соответствуют битовым строкам, начинающимся с 10 для верхнего регистра и 11 для нижнего регистра. Остальные 5 бит задают позицию буквы в алфавите. Таким образом, 10 01011₂ = 4B₁₆ — одиннадцатая буква (заглавная «К»), а 11 01011₂ = 6B₁₆ — соответствующая строчная буква «k».

ASCII относительно хорошо работал в англоязычном мире, но другие страны и культуры нуждаются в других символах, акцентах, алфавитах и ​​других символах. Невозможно написать ниньо или кафе в ASCII, или польское имя Михал, и безнадежно для греческого слова ἀλήθεια или китайского 福.

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

То есть ISO 8859-1 был для западноевропейских языков, 8859-2 для центральноевропейских, 8859-4 для североевропейских, 8859-5 для кириллицы, 8859-7 для греческого и т. д. Отправка документов между этими языками групп было сложно, и невозможно было создать единый документ, содержащий несколько языков из несовместимых кодировок.

В качестве небольшого примера возьмем символ в позиции EC₁₆ = 236₁₀. Все эти кодировки расходятся во мнениях относительно того, каким он должен быть:

    : ì — СТРОЧНАЯ ЛАТИНСКАЯ БУКВА I С ГРАВОЙ : ě — СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E С КАРОНОМ : ė — СТРОЧНАЯ ЛАТИНСКАЯ БУКВА E С ТОЧКОЙ НАД : ь — СТРОЧНАЯ КИРИЛЛИЧЕСКАЯ БУКВА МЯГКИЙ ЗНАК : μ — СТРОЧНАЯ ГРЕЧЕСКАЯ БУКВА MU : Ï — ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА I С ДИЭРЕЗИСОМ: ∞ — БЕСКОНЕЧНОСТЬ

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

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

Вы можете получить представление о разнообразии и масштабах этой цели, просмотрев таблицы кодов на веб-сайте Unicode:

Каждый из них представляет собой файл PDF, относящийся к определенному региону, языку или системе символов. В общей сложности это около ста тысяч символов.

В таблицах кодов каждому возможному символу присваивается отдельный номер, но остается вопрос, как кодировать эти числа в виде битов. Большинство чисел умещаются в 16 бит, поэтому в таблицах кодов они выражаются четырьмя шестнадцатеричными цифрами (например, 1F30 для греческой йоты с ударением: ἰ). Но 2¹⁶ — это 65 536, а мы сказали, что число символов приближается к 100 000, поэтому очевидно, что 16 бит недостаточно. Большую часть времени Unicode представлен в виде многобайтовой (переменной) кодировки, называемой UTF-8. Исходные символы ASCII по-прежнему представлены одним байтом, но установка восьмого бита позволяет использовать умный механизм, который указывает, сколько байтов следует за ним. Вот хорошее объяснение Unicode и UTF-8 от Тома Скотта на Computerphile:

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

На приведенном выше изображении все символы показаны идеально. В приведенном ниже не хватает нескольких символов.

Наконец, приведенная ниже система не может отображать никакие символы, кроме символов ASCII.

Читайте также: