Кодировка символов
Кодирование символов — это процесс присвоения чисел графическим символам , особенно письменным символам человеческого языка , позволяющий их хранить , передавать и преобразовывать с помощью цифровых компьютеров . [1] Числовые значения, составляющие кодировку символов, известны как « кодовые точки » и вместе составляют «кодовое пространство», « кодовую страницу » или « карту символов ».
Ранние коды символов, связанные с оптическим или электрическим телеграфом, могли представлять собой только подмножество символов, используемых в письменных языках , иногда ограничиваясь только прописными буквами , цифрами и некоторыми знаками препинания . Низкая стоимость цифрового представления данных в современных компьютерных системах позволяет использовать более сложные коды символов (например, Unicode ), которые представляют большинство символов, используемых во многих письменных языках. Кодирование символов с использованием международно признанных стандартов позволяет осуществлять обмен текстом в электронной форме по всему миру.
Наиболее используемой кодировкой символов в Интернете является UTF-8 , которая по состоянию на май 2024 года используется на 98,2% опрошенных веб-сайтов. [2] В прикладных программах и операционной системы задачах популярными вариантами являются UTF-8 и UTF-16 . [3] [4]
История
[ редактировать ]История кодов символов иллюстрирует растущую потребность в машинной передаче символьной информации на расстоянии с использованием некогда новых электрических средств. Самые ранние коды были основаны на ручных и рукописных системах кодирования и шифрования, таких как шифр Бэкона , шрифт Брайля , международные морские сигнальные флаги и 4-значное кодирование китайских иероглифов для китайского телеграфного кода ( Ганс Шеллеруп , 1869). С внедрением электрических и электромеханических технологий эти самые ранние коды были адаптированы к новым возможностям и ограничениям первых машин. Самый ранний известный код символов, передаваемый электрически, код Морзе , введенный в 1840-х годах, использовал систему из четырех «символов» (короткий сигнал, длинный сигнал, короткий пробел, длинный пробел) для генерации кодов переменной длины. Хотя в некоторых коммерческих целях азбука Морзе использовалась с помощью оборудования, она часто использовалась как ручной код, создаваемый вручную на телеграфном ключе и расшифровываемый на слух, и сохраняется в любительском радио. и авиационного использования. Большинство кодов имеют фиксированную длину каждого символа или последовательности кодов фиксированной длины переменной длины (например, Unicode ). [5]
Общие примеры систем кодирования символов включают код Морзе, код Бодо , американский стандартный код обмена информацией (ASCII) и Unicode. Unicode, четко определенная и расширяемая система кодирования, вытеснила большинство более ранних кодировок символов, но путь развития кода до настоящего времени довольно хорошо известен.
Код Бодо, пятибитовая кодировка , был создан Эмилем Бодо в 1870 году, запатентован в 1874 году, модифицирован Дональдом Мюрреем в 1901 году и стандартизирован CCITT как Международный телеграфный алфавит № 2 (ITA2) в 1930 году. Название Бодо имеет был ошибочно применен к ITA2 и его многочисленным вариантам. ITA2 имел множество недостатков и часто улучшался многими производителями оборудования, что иногда создавало проблемы совместимости. В 1959 году военные США определили свой код Fielddata — шести- или семибитный код, введенный Корпусом связи армии США. Хотя Fielddata решала многие современные на тот момент проблемы (например, коды букв и цифр, организованные для машинной сортировки), она не достигла своих целей и просуществовала недолго. В 1963 году комитет ASCII (в который входил по крайней мере один член комитета Fielddata, В. Ф. Леубберт) выпустил первый код ASCII (X3.4-1963), который устранил большинство недостатков Fielddata, используя более простой код. Многие изменения были незначительными, например, сопоставление наборов символов в определенных числовых диапазонах. ASCII63 имел успех, широко был принят в промышленности, а с последующим выпуском кода ASCII 1967 года (в котором были добавлены строчные буквы и исправлены некоторые проблемы с «управляющим кодом») ASCII67 получил довольно широкое распространение. Американоцентричная природа ASCII67 была несколько рассмотрена в Европе. Стандарт ECMA-6 . [6]
Герман Холлерит изобрел кодирование данных перфокарт в конце 19 века для анализа данных переписи населения. Первоначально каждое положение отверстия представляло собой отдельный элемент данных, но позже числовая информация была закодирована путем нумерации нижних строк от 0 до 9 с отметкой в столбце, обозначающей номер строки. Позже алфавитные данные были закодированы, позволяя использовать более одного удара в столбце. Электромеханические счетные машины представляли внутреннюю дату посредством синхронизации импульсов относительно движения карт через машину. Когда IBM перешла на электронную обработку, начиная с электронного умножителя IBM 603 , она использовала множество схем двоичного кодирования, привязанных к коду перфокарты.
IBM использовала несколько Binary Coded Decimal ( BCD схем кодирования шестибитных символов ), начиная с 1953 года в своей версии 702. [7] и компьютеры 704 , а также более поздние серии 7000 и 1400 , а также сопутствующие периферийные устройства. Поскольку использовавшийся тогда код перфокарты допускал только цифры, заглавные английские буквы и несколько специальных символов, шести бит было достаточно. Эти кодировки BCD расширили существующую простую четырехбитную числовую кодировку, включив в нее алфавитные и специальные символы, легко сопоставив их с кодировкой перфокарты, которая уже широко использовалась. Коды IBM использовались в основном с оборудованием IBM; другие производители компьютеров той эпохи имели свои собственные коды символов, часто шестибитные, но обычно имели возможность читать ленты, созданные на оборудовании IBM. Эти кодировки BCD были предшественниками расширенного двоично-десятичного кода обмена IBM (обычно сокращенно EBCDIC), восьмибитной схемы кодирования, разработанной в 1963 году для IBM System / 360 , которая имела больший набор символов, включая строчные буквы.
Пытаясь разработать универсально взаимозаменяемые кодировки символов, исследователи 1980-х годов столкнулись с дилеммой, заключающейся в том, что, с одной стороны, казалось необходимым добавить больше битов для размещения дополнительных символов, но, с другой стороны, для пользователей относительно небольшого набора символов латинского алфавита (которые по-прежнему составляли большинство пользователей компьютеров), эти дополнительные биты были колоссальной тратой тогдашних скудных и дорогих вычислительных ресурсов (поскольку для таких пользователей они всегда были обнулены). среднего пользователя персонального компьютера В 1985 году жесткий диск мог хранить только около 10 мегабайт, а на оптовом рынке он стоил примерно 250 долларов США (и намного дороже, если покупать его отдельно в розницу). [8] поэтому в то время было очень важно учитывать каждый бит.
Компромиссное решение, которое в конечном итоге было найдено и преобразовано в Unicode. [ нечеткий ] заключалась в том, чтобы разрушить предположение (восходящее к телеграфным кодам) о том, что каждый символ всегда должен напрямую соответствовать определенной последовательности битов. Вместо этого символы сначала будут сопоставлены с универсальным промежуточным представлением в виде абстрактных чисел, называемых кодовыми точками . Кодовые точки тогда будут представлены различными способами и с различным количеством битов на символ по умолчанию (кодовыми единицами) в зависимости от контекста. Чтобы кодировать кодовые точки, превышающие длину кодовой единицы, например, выше 256 для восьмибитных единиц, решением было реализовать кодирование переменной длины , где escape-последовательность будет сигнализировать о том, что последующие биты должны анализироваться как более высокая кодовая точка.
Терминология
[ редактировать ]Неофициально термины «кодировка символов», «карта символов», «набор символов» и «кодовая страница» часто используются как синонимы. [9] Исторически сложилось так, что один и тот же стандарт определял набор символов и способ их кодирования в поток кодовых единиц — обычно с одним символом на кодовую единицу. Однако из-за появления более сложных кодировок символов различие между этими терминами стало важным.
- Символ — это минимальная единица текста, имеющая смысловое значение. [9] [10]
- Набор символов — это набор элементов, используемых для представления текста. [9] [10] Например, латинский алфавит и греческий алфавит являются наборами символов.
- Кодированный набор символов — это набор символов, сопоставленный с набором уникальных чисел. [10] По историческим причинам ее также часто называют кодовой страницей . [9]
- Репертуар символов — это набор символов, которые могут быть представлены определенным набором кодированных символов. [10] [11] Репертуар может быть закрытым, что означает, что никакие дополнения не допускаются без создания нового стандарта (как в случае с ASCII и большей частью серии ISO-8859); Unicode и, в ограниченной степени, или он может быть открытым, допуская дополнения (как в случае с кодовыми страницами Windows ). [11]
- Кодовая точка — это значение или позиция символа в кодированном наборе символов. [10]
- Кодовое пространство — это диапазон числовых значений, охватываемый набором кодированных символов. [10] [12]
- Единица кода — это минимальная комбинация битов, которая может представлять символ в кодировке символов (в терминах информатики это размер слова кодировки символов). [10] [12] Например, распространенные единицы кода включают 7-битные, 8-битные, 16-битные и 32-битные. В некоторых кодировках некоторые символы кодируются с использованием нескольких кодовых единиц; такое кодирование называется кодированием переменной ширины .
Кодовые страницы
[ редактировать ]«Кодовая страница» — это историческое название набора кодированных символов.
Первоначально кодовая страница относилась к определенному номеру страницы в руководстве по стандартному набору символов IBM, который определял конкретную кодировку символов. [13] Другие поставщики, включая Microsoft , SAP и Oracle Corporation , также опубликовали свои собственные наборы кодовых страниц; наиболее известными наборами кодовых страниц являются « Windows » (на основе Windows-1252) и «IBM»/«DOS» (на основе кодовой страницы 437 ).
Несмотря на то, что в стандарте больше нет ссылок на конкретные номера страниц, многие кодировки символов по-прежнему обозначаются номером их кодовой страницы; аналогично, термин «кодовая страница» часто до сих пор используется для обозначения кодировок символов в целом.
Термин «кодовая страница» не используется в Unix или Linux, где предпочтение отдается «карте символов», обычно в более широком контексте локалей. Архитектура представления символьных данных IBM (CDRA) обозначает объекты с идентификаторами кодированного набора символов ( CCSID ), каждый из которых по-разному называется «набором символов», «набором символов», «кодовой страницей» или «CHARMAP». [12]
Кодовые единицы
[ редактировать ]Размер кодовой единицы эквивалентен битовому измерению для конкретной кодировки:
- Кодовая единица в ASCII состоит из 7 бит;
- Кодовая единица в UTF-8 , EBCDIC и GB 18030 состоит из 8 бит;
- Кодовая единица в UTF-16 состоит из 16 бит;
- Кодовая единица в UTF-32 состоит из 32 битов.
Кодовые точки
[ редактировать ]Кодовая точка представлена последовательностью кодовых единиц. Отображение определяется кодировкой. Таким образом, количество кодовых единиц, необходимых для представления кодовой точки, зависит от кодировки:
- UTF-8: кодовые точки отображаются в последовательность из одной, двух, трех или четырех единиц кода.
- UTF-16: кодовые единицы в два раза длиннее 8-битных кодовых единиц. Следовательно, любая кодовая точка со скалярным значением меньше U+10000 кодируется одной кодовой единицей. Кодовые точки со значением U+10000 или выше требуют двух кодовых единиц каждая. Эти пары кодовых единиц имеют уникальный термин в UTF-16: «суррогатные пары Юникода».
- UTF-32: 32-битная кодовая единица достаточно велика, чтобы каждая кодовая точка была представлена как одна кодовая единица.
- GB 18030: несколько кодовых единиц на одну кодовую точку являются обычным явлением из-за небольших кодовых единиц. Кодовые точки сопоставляются с одной, двумя или четырьмя кодовыми единицами. [14]
Персонажи
[ редактировать ]То, что именно представляет собой символ, варьируется в зависимости от кодировки символов.
Например, для букв с диакритическими знаками существует два различных подхода к их кодированию: они могут быть закодированы либо как один унифицированный символ (известный как заранее составленный символ), либо как отдельные символы, которые объединяются в один глиф . Первый упрощает систему обработки текста, а второй позволяет использовать в тексте любую комбинацию букв и диакритических знаков. Лигатуры создают аналогичные проблемы.
То, как именно обрабатывать варианты глифов, — это выбор, который необходимо сделать при построении конкретной кодировки символов. Некоторые системы письменности, такие как арабская и иврит, должны учитывать такие вещи, как графемы , которые в разных контекстах соединяются по-разному, но представляют один и тот же семантический характер.
Модель кодирования Юникода
[ редактировать ]Юникод ISO/IEC 10646 и его параллельный стандарт, универсальный набор символов , вместе составляют единый стандарт кодировки символов. Вместо сопоставления символов непосредственно с байтами , Unicode отдельно определяет набор кодированных символов, который сопоставляет символы с уникальными натуральными числами ( кодовыми точками ), как эти кодовые точки сопоставляются с сериями натуральных чисел фиксированного размера (кодовыми единицами) и, наконец, как эти единицы кодируются как поток октетов (байтов). Целью этой декомпозиции является создание универсального набора символов, который можно закодировать различными способами. Чтобы точно описать эту модель, Unicode использует собственный набор терминологии для описания своего процесса: [12]
Репертуар абстрактных символов (ACR) — это полный набор абстрактных символов, поддерживаемых системой. Юникод имеет открытый репертуар, а это означает, что со временем в репертуар будут добавляться новые символы.
Набор кодированных символов (CCS) — это функция , которая сопоставляет символы с кодовыми точками (каждая кодовая точка представляет один символ). Например, в данном репертуаре заглавная буква «А» латинского алфавита может быть представлена кодовой точкой 65, символ «В» — 66 и так далее. Несколько наборов кодированных символов могут использовать один и тот же набор символов; например, кодовые страницы ISO/IEC 8859-1 и IBM 037 и 500 охватывают один и тот же репертуар, но сопоставляют их с разными кодовыми точками.
Форма кодирования символов (CEF) — это преобразование кодовых точек в кодовые единицы для облегчения хранения в системе, которая представляет числа в виде битовых последовательностей фиксированной длины (т. е. практически в любой компьютерной системе). Например, система, которая хранит числовую информацию в 16-битных единицах, может напрямую представлять только кодовые точки от 0 до 65 535 в каждой единице, но более крупные кодовые точки (скажем, от 65 536 до 1,4 миллиона) могут быть представлены с использованием нескольких 16-битных единиц. Это соответствие определяется CEF.
Схема кодирования символов (CES) — это преобразование кодовых единиц в последовательность октетов для облегчения хранения в файловой системе на основе октетов или передачи по сети на основе октетов. Простые схемы кодировки символов включают UTF-8 , UTF-16BE , UTF-32BE , UTF-16LE и UTF-32LE ; схемы кодирования составных символов, такие как UTF-16 , UTF-32 и ISO/IEC 2022 , переключаются между несколькими простыми схемами с помощью знака порядка байтов или escape-последовательностей ; схемы сжатия пытаются минимизировать количество байтов, используемых на единицу кода (например, SCSU и BOCU ).
Хотя UTF-32BE и UTF-32LE являются более простыми CES, большинство систем, работающих с Unicode, используют либо UTF-8 , который обратно совместим с ASCII фиксированной длины и отображает кодовые точки Unicode в последовательности октетов переменной длины, либо UTF-16BE . [ нужна ссылка ] который обратно совместим с UCS-2BE фиксированной длины и отображает кодовые точки Unicode в последовательности 16-битных слов переменной длины. см . в сравнении кодировок Unicode Подробное обсуждение .
Наконец, может существовать протокол более высокого уровня , который предоставляет дополнительную информацию для выбора конкретного варианта символа Юникода , особенно если существуют региональные варианты, которые были «унифицированы» в Юникоде как один и тот же символ. Примером может служить атрибут XML xml:lang.
Модель Unicode использует термин «карта символов» для других систем, которые напрямую присваивают последовательность символов последовательности байтов, охватывая все уровни CCS, CEF и CES. [12]
Кодовые точки Юникода
[ редактировать ]В Юникоде символ может называться «U+», за которым следует его кодовое значение в шестнадцатеричном формате. Диапазон допустимых кодовых точек (кодовое пространство) для стандарта Unicode составляет от U+0000 до U+10FFFF включительно, разделен на 17 плоскостей , обозначенных числами от 0 до 16. Символы в диапазоне от U+0000 до U+FFFF являются в плоскости 0, называемой базовой многоязычной плоскостью (BMP). Этот самолет содержит наиболее часто используемые символы. Символы в диапазоне от U+10000 до U+10FFFF в других плоскостях называются дополнительными символами .
В следующей таблице показаны примеры значений кодовых точек:
Характер | Кодовая точка Юникода | Глиф |
---|---|---|
латынь А | U + 0041 | А |
Латинский диез S | U + 00DF | SS |
Он за Восток | U+6771 | Восток |
Амперсанд | U + 0026 | & |
Перевернутый восклицательный знак | U + 00A1 | ¡ |
Знак раздела | U + 00A7 | § |
Пример
[ редактировать ]Рассмотрим строку букв «ab̲c𐐀», то есть строку, содержащую объединяющий символ Юникода ( U+0332 ̲ КОМБИНИРОВАНИЕ НИЗКОЙ ЛИНИИ ), а также дополнительный символ ( U+10400 𐐀 ДЕСЕРЕТ ЗАГЛАВНАЯ БУКВА I ). Эта строка имеет несколько представлений в Юникоде, которые логически эквивалентны, но каждое из них подходит для различных обстоятельств или ряда требований:
- Четыре составленных персонажа :
a
,b̲
,c
,𐐀
- Пять графем :
a
,b
,_
,c
,𐐀
- Пять кодовых точек Unicode :
U+0061
,U+0062
,U+0332
,U+0063
,U+10400
- Пять кодовых единиц UTF-32 (32-битные целочисленные значения):
0x00000061
,0x00000062
,0x00000332
,0x00000063
,0x00010400
- Шесть кодовых единиц UTF-16 (16-битные целые числа)
0x0061
,0x0062
,0x0332
,0x0063
,0xD801
,0xDC00
- Девять кодовых единиц UTF-8 (8-битные значения или байты ).
0x61
,0x62
,0xCC
,0xB2
,0x63
,0xF0
,0x90
,0x90
,0x80
Обратите внимание, в частности, что 𐐀 представлен либо одним 32-битным значением (UTF-32), двумя 16-битными значениями (UTF-16) или четырьмя 8-битными значениями (UTF-8). Хотя каждая из этих форм использует одинаковое общее количество битов (32) для представления глифа, неясно, как связаны фактические числовые значения байтов.
Транскодирование
[ редактировать ]В результате использования множества методов кодирования символов (и необходимости обратной совместимости с архивными данными) было разработано множество компьютерных программ для перевода данных между схемами кодирования символов - процесс, известный как транскодирование . Некоторые из них приведены ниже.
- Веб-браузеры . Большинство современных веб-браузеров имеют функцию автоматического определения кодировки символов . Например, в Firefox 3 см. подменю «Вид/Кодировка символов».
- iconv — программа и стандартизированный API для преобразования кодировок
- luit — программа, которая преобразует кодировку ввода и вывода в программы, работающие в интерактивном режиме.
- Международные компоненты для Unicode — набор библиотек C и Java для преобразования кодировок. uconv можно использовать из ICU4C.
Окна :
- Encoding.Convert – .NET API [15]
- MultiByteToWideChar/WideCharToMultiByte — для преобразования из ANSI в Unicode и из Unicode в ANSI. [16] [17]
Общие кодировки символов
[ редактировать ]Этот раздел нуждается в расширении : Популярность и сравнение:
|
Наиболее используемой кодировкой символов в Интернете является UTF-8 , которая по состоянию на май 2024 года используется на 98,2% опрошенных веб-сайтов. [2] В прикладных программах и операционной системы задачах популярными вариантами являются UTF-8 и UTF-16 . [3] [4]
- ИСО 646
- EBCDIC
- ИСО 8859 :
- ISO 8859-1 Западная Европа
- ISO 8859-2 Западная и Центральная Европа
- ISO 8859-3 Западная Европа и Южная Европа (турецкий, мальтийский плюс эсперанто)
- ISO 8859-4 Западная Европа и страны Балтии (Литва, Эстония, Латвия и Лапландия)
- ISO 8859-5 Кириллический алфавит.
- ISO 8859-6 Арабский
- ISO 8859-7 Греческий
- ISO 8859-8 Иврит
- ISO 8859-9 Западная Европа с измененным набором турецких символов.
- ISO 8859-10 Западная Европа с рационализированным набором символов для скандинавских языков, включая полный набор исландских языков.
- ISO 8859-11 Тайский
- ISO 8859-13 Балтийские языки плюс польский
- ISO 8859-14 Кельтские языки (ирландский гэльский, шотландский, валлийский)
- ISO 8859-15 В ISO 8859-1 добавлен знак евро и другие пояснения.
- ISO 8859-16 Языки Центральной, Восточной и Южной Европы (албанский, боснийский, хорватский, венгерский, польский, румынский, сербский и словенский, а также французский, немецкий, итальянский и ирландский гэльский)
- CP437 , CP720 , CP737 , CP850 , CP852 , CP855 , CP857 , CP858 , CP860 , CP861 , CP862 , CP863 , CP865 , CP866 , CP869 , CP872
- Наборы символов MS-Windows :
- Windows-1250 для центральноевропейских языков, использующих латиницу (польский, чешский, словацкий, венгерский, словенский, сербский, хорватский, боснийский, румынский и албанский)
- Windows-1251 для кириллицы
- Windows-1252 для западных языков
- Windows-1253 для греческого языка
- Windows-1254 для турецкого языка
- Windows-1255 для иврита
- Windows-1256 для арабского языка
- Windows-1257 для балтийских языков
- Windows-1258 для вьетнамского языка
- Mac OS Роман
- КОИ8-Р , КОИ8-У , КОИ7
- ЧТО
- ИЩИС
- ТСКИИ
- ВИСКИ
- JIS X 0208 — это широко распространенный стандарт кодировки японских символов, который имеет несколько форм кодирования.
- Shift JIS Microsoft ( кодовая страница 932 — это диалект Shift_JIS)
- EUC-JP
- ISO-2022-JP
- JIS X 0213 — это расширенная версия JIS X 0208.
- Китайский Гобяо
- Тайвань Big5 (более известный вариант — кодовая страница Microsoft 950 )
- Гонконг HKSCS
- корейский
- KS X 1001 — корейский стандарт кодировки двухбайтовых символов.
- EUC-КР
- ИСО-2022-КР
- Юникод (и его подмножества, такие как 16-битная «Базовая многоязычная плоскость»)
- ANSEL или ISO/IEC 6937
См. также
[ редактировать ]- Процентное кодирование
- Альтернативный код
- Кодировки символов в HTML
- Категория:Кодировка символов – статьи, посвященные кодировке символов в целом.
- Категория: Наборы символов — статьи с подробным описанием конкретных кодировок символов.
- Шестнадцатеричные представления
- Моджибаке – неправильное отображение набора символов
- Модзикё - система («набор символов»), включающая более 100 000 рисунков китайских иероглифов, современных и древних, популярных и малоизвестных.
- Уровень представления
- TRON , часть проекта TRON, представляет собой систему кодирования, не использующую унификацию Хань; вместо этого он использует «управляющие коды» для переключения между 16-битными «плоскостями» символов.
- Персонажи универсального набора символов
- Анализ набора символов — используется в некоторых приложениях, когда метаданные кодировки символов недоступны.
Ссылки
[ редактировать ]- ^ «Определение кодировки символов» . Словарь технических терминов . 24 сентября 2010 г.
- ^ Jump up to: а б «Обзор использования кодировок символов с разбивкой по рейтингу» . W3Techs . Проверено 29 апреля 2024 г.
- ^ Jump up to: а б «Чарсет» . Android-разработчики . Проверено 2 января 2021 г.
Примечание для Android. Платформа Android по умолчанию всегда использует кодировку UTF-8.
- ^ Jump up to: а б Галлоуэй, Мэтт (9 октября 2012 г.). «Кодировка символов для разработчиков iOS. Или UTF-8, что теперь?» . www.galloway.me.uk . Проверено 2 января 2021 г.
на самом деле вы обычно просто предполагаете UTF-8, поскольку это, безусловно, самая распространенная кодировка.
- ^ Том Хендерсон (17 апреля 2014 г.). «Таблицы кодов символов древних компьютеров – и почему они все еще актуальны» . Умный медведь . Проверено 29 апреля 2014 г.
- ^ Том Дженнингс (1 марта 2010 г.). «Аннотированная история некоторых кодов символов» . Проверено 1 ноября 2018 г.
- ^ «Предварительное информационное руководство по электронным машинам обработки данных IBM типа 702» (PDF) . 1954. с. 80. 22-6173-1. Архивировано (PDF) из оригинала 9 октября 2022 года.
- ^ Стрелхо, Кевин (15 апреля 1985 г.). «IBM переводит жесткие диски на новые стандарты» . Инфомир . Popular Computing Inc., стр. 29–33 . Проверено 10 ноября 2020 г.
- ^ Jump up to: а б с д Шон Стил (15 марта 2005 г.). «В чем разница между кодировкой, кодовой страницей, набором символов и Юникодом?» . Документы Майкрософт .
- ^ Jump up to: а б с д и ж г «Глоссарий терминов Юникода» . Консорциум Юникод.
- ^ Jump up to: а б «Глава 3: Соответствие». Стандарт Unicode версии 15.0 – Основная спецификация (PDF) . Консорциум Юникод. Сентябрь 2022 г. ISBN 978-1-936213-32-0 .
- ^ Jump up to: а б с д и Уистлер, Кен; Фрейтаг, Асмус (11 ноября 2022 г.). «UTR № 17: Модель кодировки символов Юникода» . Консорциум Юникод . Проверено 12 августа 2023 г.
- ^ «Информация о программаторе видеотерминала VT510» . Корпорация цифрового оборудования (DEC). 7.1. Наборы символов — Обзор. Архивировано из оригинала 26 января 2016 года . Проверено 15 февраля 2017 г.
В дополнение к традиционным наборам символов DEC и ISO , которые соответствуют структуре и правилам ISO 2022 , VT510 поддерживает ряд кодовых страниц IBM PC ( номера страниц в руководстве по стандартному набору символов IBM) в режиме PCTerm для эмуляции терминала консольного ПК отраслевого стандарта.
- ^ «Терминология (Уроки Java)» . Оракул . Проверено 25 марта 2018 г.
- ^ «Метод Encoding.Convert» . Библиотека классов Microsoft .NET Framework .
- ^ «Функция MultiByteToWideChar (stringapiset.h)» . Документы Майкрософт . 13 октября 2021 г.
- ^ «Функция WideCharToMultiByte (stringapiset.h)» . Документы Майкрософт . 9 августа 2022 г.
Дальнейшее чтение
[ редактировать ]- Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF) . Серия системного программирования (1-е изд.). издательской компании Addison-Wesley, Inc. ISBN 978-0-201-14460-4 . LCCN 77-90165 . Архивировано (PDF) из оригинала 26 мая 2016 г. Проверено 25 августа 2019 г.
Внешние ссылки
[ редактировать ]- Наборы символов, зарегистрированные Управлением по присвоению номеров в Интернете (IANA).
- Символы и кодировки , Юкка Корпела
- Технический отчет Unicode № 17: Модель кодировки символов
- Десятичные и шестнадцатеричные коды символов в HTML Unicode — конвертер кодировок
- Абсолютный минимум, который каждый разработчик программного обеспечения абсолютно и обязательно должен знать о Юникоде и наборах символов (без оправданий!), Джоэл Спольски (10 октября 2003 г.)