Из Википедии, бесплатной энциклопедии
  (Перенаправлено из набора символов )
Перейти к навигации Перейти к поиску

Перфолента со словом «Википедия» в кодировке ASCII . Наличие и отсутствие отверстия обозначают 1 и 0 соответственно; например, «W» кодируется как «1010111».

В вычислениях , хранении данных и передачах данных , кодировка символов используются для представления репертуара символов с помощью какого - то кодирующей системы , которая присваивает номер каждый символ для цифрового представления. [1] В зависимости от уровня абстракции и контекста соответствующие кодовые точки и результирующее кодовое пространство могут рассматриваться как битовые комбинации , октеты , натуральные числа , электрические импульсы и т. Д. При вычислении используется кодирование символов., хранение данных и передача текстовых данных. «Набор символов», «карта символов», «набор кодов » и « кодовая страница » являются связанными, но не идентичными терминами.

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

История [ править ]

История символьных кодов иллюстрирует растущую потребность в машинно-опосредованной символьной символической информации на расстоянии с использованием когда-то новых электрических средств. Самые ранние коды были основаны на ручных и рукописных системах кодирования и шифрования, таких как шифр Бэкона , шрифт Брайля , международные морские сигнальные флаги и 4-значное кодирование китайских символов для китайского телеграфного кода ( Hans Schjellerup , 1869). С принятием электрических и электромеханических методов эти самые ранние коды были адаптированы к новым возможностям и ограничениям ранних машин. Самый ранний известный символьный код, передаваемый электрически, - код Морзе., представленный в 1840-х годах, использовал систему из четырех «символов» (короткий сигнал, длинный сигнал, короткий интервал, длинный интервал) для генерации кодов переменной длины. Хотя в основном код Морзе использовался в коммерческих целях с помощью оборудования, [ необходима цитата ] он также использовался как ручной код, генерируемый вручную с помощью телеграфного ключа и дешифруемый на слух, и сохраняется в радиолюбительском использовании. Большинство кодов имеют фиксированную посимвольную длину или последовательности кодов фиксированной длины переменной длины (например, Unicode ). [2]

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

Код Бодо , пятибитовая кодировка, был создан Эмилем Бодо в 1870 году, запатентован в 1874 году, модифицирован Дональдом Мюрреем в 1901 году и стандартизирован CCITT как Международный телеграфный алфавит № 2 (ITA2) в 1930 году. Название «бодо» "был ошибочно применен к ITA2 и ее многочисленным вариантам. ITA2 страдает множеством недостатков и часто «улучшается» многими производителями оборудования, иногда создавая проблемы совместимости. В 1959 году американские военные определили свой Fieldata.code, шестибитный или семибитный код, представленный Службой связи армии США. В то время как Fieldata решала многие из тогдашних проблем (например, буквенные и цифровые коды для машинного сопоставления), Fieldata не достигла своих целей и просуществовала недолго. В 1963 году первый код ASCII (Американский стандартный код для обмена информацией) был выпущен (X3.4-1963) комитетом ASCII (в который входил по крайней мере один член комитета Fieldata, У. Ф. Леубберт), который устранил большинство недостатков Fieldata. , используя более простой код. Многие изменения были незначительными, например, упорядочиваемый набор символов в определенных числовых диапазонах. ASCII63 имел успех, получил широкое распространение в промышленности, и с последующим выпуском кода ASCII 1967 года (который добавил строчные буквы и исправил некоторые проблемы с "контрольным кодом") ASCII67 получил довольно широкое распространение. ASCII67 's Американоцентричный характер был в некоторой степени затронут в европейскихСтандарт ECMA-6 . [3]

Несколько исторически изолированные, IBM «s двоично десятичное ( BCD ) была схема кодирования шесть бит , используемый IBM в качестве еще в 1959 в его 1401 и 1620 компьютеров, а в серии 7000 (например, 704, 7040, 709 и 7090 компьютеров), а также в сопутствующей периферии. BCD расширил существующее простое четырехбитное числовое кодирование, включив в него буквенные и специальные символы, легко сопоставив его с кодировкой перфокарт, которая уже широко использовалась. Это был предшественник EBCDIC. По большей части коды IBM использовались в основном с оборудованием IBM, которое представляло собой более или менее закрытую экосистему и не находило широкого распространения за пределами «кругов» IBM. IBM «sРасширенный двоично-десятичный код обмена (обычно сокращенно EBCDIC) - это восьмибитная схема кодирования, разработанная в 1963 году.

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

Пытаясь разработать универсально взаимозаменяемые кодировки символов, исследователи в 1980-х годах столкнулись с дилеммой: с одной стороны, казалось необходимым добавить больше битов для размещения дополнительных символов, но, с другой стороны, для пользователей относительно небольшого набора символов. латинского алфавита (который все еще составлял большинство пользователей компьютеров), эти дополнительные биты были колоссальной тратой тогда скудных и дорогих вычислительных ресурсов (поскольку они всегда были бы обнулены для таких пользователей). В 1985 году на жестком диске среднего пользователя персонального компьютера можно было хранить только около 10 мегабайт, а на оптовом рынке он стоил примерно 250 долларов США (и намного выше, если покупать его отдельно в розницу) [4], поэтому в то время это было очень важно. чтобы каждый бит был на счету.

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

Терминология [ править ]

Терминология, связанная с кодировкой символов
  • Персонаж является минимальной единицей текста , который имеет смысловое значение.
  • Набор символов - это набор символов, которые могут использоваться в нескольких языках. Пример: набор латинских символов используется в английском и большинстве европейских языков, хотя набор символов греческого языка используется только в греческом языке.
  • Кодированный набор символов представляет собой набор символов , в котором каждый символ соответствует уникальному номеру.
  • Код точка кодированного набора символов любое допустимое значение в наборе символов или кодового пространстве.
  • Кодовое пространство представляет собой набор целых чисел, значение которых являются кодовыми точками
  • Блок кода является последовательность битов используется для кодирования каждого символа репертуара в пределах заданной формы кодирования. В некоторых документах это называется кодовым значением . [5]
Репертуар персонажей (абстрактный набор персонажей)

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

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

Размер кодовой единицы эквивалентен битовому измерению для конкретной кодировки:

  • Единица кода в US-ASCII состоит из 7 бит;
  • Единица кода в UTF-8 , EBCDIC и GB18030 состоит из 8 бит;
  • Единица кода в UTF-16 состоит из 16 бит;
  • Единица кода в UTF-32 состоит из 32 бит.

Пример кодовой единицы: рассмотрим строку букв «abc», за которой следует U + 10400 𐐀 ДЛИННАЯ ЗАГЛАВНАЯ БУКВА I (представленная 1 char32_t, 2 char16_t или 4 char8_t). Эта строка содержит:

  • четыре персонажа;
  • четыре кодовых точки
  • либо:
    четыре кодовых единицы в UTF-32 (00000061, 00000062, 00000063, 00010400)
    пять кодовых единиц в UTF-16 (0061, 0062, 0063, d801, dc00) или
    семь кодовых единиц в UTF-8 (61, 62, 63, f0, 90, 90, 80).

Условие для обозначения символа в Юникоде должно начинаться с символа «U +», за которым следует значение кодовой точки в шестнадцатеричном формате. Диапазон допустимых кодовых точек для стандарта Unicode составляет от U + 0000 до U + 10FFFF включительно, разделенных на 17 плоскостей , обозначенных числами от 0 до 16. Символы в диапазоне от U + 0000 до U + FFFF находятся в плоскости 0, называется Basic Multilingual Plane (BMP). Этот самолет содержит наиболее часто используемые персонажи. Символы в диапазоне от U + 10000 до U + 10FFFF в других плоскостях называются дополнительными символами .

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

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

  • UTF-8: кодовые точки отображаются в последовательность из одной, двух, трех или четырех кодовых единиц.
  • UTF-16: кодовые единицы в два раза длиннее 8-битных кодовых единиц. Следовательно, любая кодовая точка со скалярным значением меньше U + 10000 кодируется с помощью одной кодовой единицы. Для кодовых точек со значением U + 10000 или выше требуется по две кодовых единицы каждая. Эти пары кодовых единиц имеют уникальный термин в UTF-16: «суррогатные пары Unicode».
  • UTF-32: 32-битная кодовая единица достаточно велика, чтобы каждая кодовая точка была представлена ​​как одна кодовая единица.
  • GB18030: несколько кодовых единиц на кодовую точку являются обычными из-за небольших кодовых единиц. Кодовые точки отображаются на одну, две или четыре кодовых единицы. [6]

Модель кодирования Unicode [ править ]

Юникод и его параллельный стандарт, универсальный набор символов ISO / IEC 10646 , вместе составляют современную унифицированную кодировку символов. Вместо того, чтобы напрямую отображать символы в октеты ( байты ), они по отдельности определяют, какие символы доступны, соответствующие натуральные числа ( кодовые точки ), как эти числа кодируются как серии натуральных чисел фиксированного размера (кодовые единицы) и, наконец, как они единицы кодируются как поток октетов. Цель этого разложения - установить универсальный набор символов, который можно закодировать различными способами. [7] Для правильного описания этой модели требуются более точные термины, чем «набор символов» и «кодировка символов». В современной модели используются следующие термины:[7]

Характер репертуар является полным набором абстрактных символов , которые система поддерживает. Репертуар может быть закрытым, т.е. никакие добавления не допускаются без создания нового стандарта (как в случае с ASCII и большей частью серии ISO-8859), или он может быть открытым, позволяя дополнения (как в случае с Unicode и в в ограниченной степени кодовые страницы Windows ). Персонажи данного репертуара отражают принятые решения о том, как разделить системы письма на основные информационные единицы. Основные варианты латинского , греческого и кириллического алфавитов можно разбить на буквы, цифры, знаки препинания и несколько специальных символов.например, пространство, которое можно упорядочить в простых линейных последовательностях, отображаемых в том же порядке, в котором они читаются. Но даже в этих алфавитах диакритические знаки создают сложности: их можно рассматривать либо как часть одного символа, содержащего букву и диакритический знак (известный как предварительно составленный символ), либо как отдельные символы. Первый позволяет использовать гораздо более простую систему обработки текста, но второй позволяет использовать в тексте любую комбинацию букв и диакритических знаков. Лигатуры создают аналогичные проблемы. Другие системы письма, такие как арабский и иврит, представлены более сложным репертуаром символов из-за необходимости учитывать такие вещи, как двунаправленный текст и глифы , которые соединяются по-разному для разных ситуаций.

Набор кодированных символов (CCS) - это функция, которая сопоставляет символы с кодовыми точками (каждая кодовая точка представляет один символ). Например, в данном репертуаре заглавная буква «A» в латинском алфавите может быть представлена ​​кодовой точкой 65, символом «B» - 66 и так далее. Наборы нескольких кодированных символов могут иметь один и тот же репертуар; например, ISO / IEC 8859-1 и кодовые страницы 037 и 500 IBM охватывают один и тот же репертуар, но сопоставляют их с разными кодовыми точками.

Форма кодировки символов (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 , переключаются между несколькими простыми схемами с помощью знаков порядка байтов или управляющих последовательностей ; схемы сжатия пытаются минимизировать количество байтов, используемых на единицу кода (например, SCSU ,BOCU и Punycode ).

Хотя UTF-32BE является более простой CES, большинство систем, работающих с Unicode, используют либо UTF-8 , который обратно совместим с ASCII фиксированной ширины и сопоставляет кодовые точки Unicode с последовательностями октетов переменной ширины, либо UTF-16BE , который является обратным. совместим с UCS-2BE фиксированной ширины и отображает кодовые точки Unicode в последовательности 16-битных слов переменной ширины. См. Сравнение кодировок Unicode для подробного обсуждения.

Наконец, может существовать протокол более высокого уровня, который предоставляет дополнительную информацию для выбора конкретного варианта символа Unicode , особенно там, где есть региональные варианты, которые были «унифицированы» в Unicode как один и тот же символ. Примером может служить атрибут XML xml: lang.

Модель Unicode использует термин « символьная карта» для исторических систем, которые напрямую назначают последовательность символов последовательности байтов, охватывая все уровни CCS, CEF и CES. [7]

Наборы символов, карты символов и кодовые страницы [ править ]

Исторически термины «кодировка символов», «карта символов», «набор символов» и « кодовая страница » были синонимами в информатике , поскольку один и тот же стандарт определял репертуар символов и то, как они должны были быть закодированы в поток кодовые единицы - обычно с одним символом на кодовую единицу. Но теперь термины имеют связанные, но разные значения [8] из-за попыток органов по стандартизации использовать точную терминологию при описании и объединении множества различных систем кодирования. [7] Несмотря на это, термины по-прежнему используются как синонимы, а набор символов почти повсеместен.

« Кодовая страница » обычно означает байтовую кодировку, но в отношении некоторого набора кодировок (охватывающих разные сценарии), где многие символы используют одни и те же коды в большинстве или во всех этих кодовых страницах. Хорошо известными наборами кодовых страниц являются "Windows" (на основе Windows-1252) и "IBM" / "DOS" (на основе кодовой страницы 437 ), подробности см. В кодовой странице Windows . Большинство, но не все, кодировки, называемые кодовыми страницами, являются однобайтовыми (но см. Октет по размеру байта).

Архитектура представления символьных данных IBM (CDRA) обозначает идентификаторы кодированных наборов символов ( CCSID ), каждый из которых по-разному называется «набором символов», «набором символов», «кодовой страницей» или «CHARMAP». [7]

Термин «кодовая страница» не встречается в Unix или Linux, где предпочтительнее «charmap», обычно в более широком контексте локалей.

В отличие от « набора кодированных символов », «кодировка символов» - это отображение абстрактных символов на кодовые слова . «Набор символов» в языке HTTP (и MIME ) совпадает с кодировкой символов (но не совпадает с CCS).

« Устаревшая кодировка» - это термин, который иногда используется для характеристики старых кодировок символов, но с неоднозначным смыслом. Большая часть его использования находится в контексте Unicodification , где он относится к кодировкам, которые не охватывают все кодовые точки Unicode, или, в более общем плане, с использованием несколько другого репертуара символов: несколько кодовых точек, представляющих один символ Unicode, [9] или наоборот. (см., например, кодовую страницу 437 ). Некоторые источники называют кодировку устаревшей только потому, что она предшествовала Unicode. [10] Все кодовые страницы Windows обычно называют устаревшими как потому, что они предшествуют Unicode, так и потому, что они не могут представить все 2 21 возможных кодовых точек Unicode.

Перевод кодировки символов [ править ]

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

Кроссплатформенность :

  • Веб-браузеры - большинство современных веб-браузеров поддерживают автоматическое определение кодировки символов. Например, в Firefox 3 см. Подменю «Вид / Кодировка символов».
  • iconv - программа и стандартизированный API для преобразования кодировок
  • luit - программа, преобразующая кодировку ввода и вывода в программы, работающие в интерактивном режиме
  • convert_encoding.py - Утилита на основе Python для преобразования текстовых файлов между произвольными кодировками и окончаниями строк. [11]
  • decodeh.py - алгоритм и модуль для эвристического угадывания кодировки строки. [12]
  • Международные компоненты для Unicode - набор библиотек C и Java для преобразования кодировки. uconv можно использовать из ICU4C.
  • chardet - это перевод кода автоматического определения кодирования Mozilla на компьютерный язык Python.
  • Более новые версии команды Unix file пытаются выполнить базовое определение кодировки символов (также доступно в Cygwin ).
  • charset - библиотека шаблонов C ++ с простым интерфейсом для преобразования между потоками C ++ / определяемыми пользователем. charset определяет множество наборов символов и позволяет использовать форматы Unicode с поддержкой порядка байтов .

Unix-подобный :

  • cmv - простой инструмент для перекодировки имен файлов. [13]
  • convmv - преобразовать имя файла из одной кодировки в другую. [14]
  • cstocs - конвертировать содержимое файла из одной кодировки в другую для чешского и словацкого языков.
  • enca - анализирует кодировки для заданных текстовых файлов. [15]
  • recode - конвертировать содержимое файла из одной кодировки в другую [16]
  • utrac - конвертировать содержимое файла из одной кодировки в другую. [17]

Окна :

  • Encoding.Convert - .NET API [18]
  • MultiByteToWideChar / WideCharToMultiByte - преобразование из ANSI в Unicode и Unicode в ANSI [19]
  • cscvt - инструмент преобразования набора символов [20]
  • enca - анализирует кодировки для заданных текстовых файлов. [21]

См. Также [ править ]

  • Процентное кодирование
  • Альтернативный код
  • Кодировки символов в HTML
  • Категория: Кодировка символов - статьи, связанные с кодировкой символов в целом
  • Категория: Наборы символов - статьи с подробным описанием конкретных кодировок символов.
  • Шестнадцатеричные представления
  • Моджибаке - несоответствие набора символов.
  • Модзикё - система («набор символов»), включающая более 100 000 рисунков китайских иероглифов, современных и древних, популярных и малоизвестных.
  • Уровень представления
  • TRON , часть проекта TRON, представляет собой систему кодирования, которая не использует Han Unification; вместо этого он использует «управляющие коды» для переключения между 16-битными «плоскостями» символов.
  • Персонажи универсального набора символов
  • Анализ кодировки - используется в некоторых приложениях, когда метаданные кодировки символов недоступны.

Общие кодировки символов [ править ]

  • ISO 646
    • ASCII
  • EBCDIC
  • ISO 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
  • МИК
  • ISCII
  • TSCII
  • VISCII
  • JIS X 0208 - это широко распространенный стандарт кодировки символов японского языка, имеющий несколько форм кодирования.
    • Shift JIS ( кодовая страница Microsoft 932 - диалект Shift_JIS)
    • EUC-JP
    • ISO-2022-JP
  • JIS X 0213 - это расширенная версия JIS X 0208.
    • Shift_JIS-2004
    • EUC-JIS-2004
    • ISO-2022-JP-2004
  • Китайский Гобяо
    • ГБ 2312
    • GBK (кодовая страница Microsoft 936)
    • ГБ 18030
  • Тайваньская Big5 (более известный вариант - Microsoft Code page 950 )
    • Гонконг HKSCS
  • Корейский
    • KS X 1001 - корейский стандарт кодировки двухбайтовых символов.
    • EUC-KR
    • ISO-2022-KR
  • Юникод (и его подмножества, такие как 16-битная «Базовая многоязычная плоскость»)
    • UTF-8
    • UTF-16
    • UTF-32
  • ANSEL или ISO / IEC 6937

Ссылки [ править ]

  1. ^ Определение из словаря технических терминов
  2. Том Хендерсон (17 апреля 2014 г.). «Древние компьютерные таблицы кодов символов - и почему они все еще актуальны» . Умный медведь . Проверено 29 апреля 2014 года .
  3. Том Дженнингс (1 марта 2010 г.). «Аннотированная история некоторых кодов символов» . Проверено 1 ноября 2018 .
  4. ^ Strelho, Кевин (15 апреля 1985). «IBM приводит жесткие диски в соответствие с новыми стандартами» . InfoWorld . Popular Computing Inc., стр. 29–33 . Дата обращения 10 ноября 2020 .
  5. ^ «Глоссарий Unicode» . Консорциум Unicode.
  6. ^ «Учебники Java - Терминология» . Oracle . Проверено 25 марта 2018 года .
  7. ^ a b c d e "Технический отчет Unicode № 17: Модель кодирования символов Unicode" . 11 ноября 2008 . Проверено 8 августа 2009 года .
  8. Шон Стил (15 марта 2005 г.). «В чем разница между кодировкой, кодовой страницей, набором символов и Unicode?» . MSDN .
  9. ^ «Обработка информации базы данных с использованием Unicode, тематическое исследование». Архивировано 17 июня 2006 г. на Wayback Machine.
  10. Констебль, Питер (13 июня 2001 г.). «Основы кодирования набора символов» . Реализация систем письма: введение . SIL International . Архивировано из оригинала 5 мая 2013 года . Проверено 19 марта 2010 года .
  11. ^ convert_encoding.py
  12. ^ Decodeh - эвристически декодировать строку или текстовый файл. Архивировано 8 января 2008 г. на Wayback Machine.
  13. ^ CharsetMove - простой инструмент для перекодировки имен файлов
  14. ^ Convmv - преобразует имена файлов из одной кодировки в другую.
  15. ^ "Чрезвычайно наивный анализатор кодировки" . Архивировано из оригинала 4 декабря 2010 года . Проверено 11 марта 2008 года .
  16. ^ Перекодировать - проект GNU - Фонд свободного программного обеспечения (ФСПО)
  17. ^ Домашняя страница Utrac
  18. ^ Библиотека классов Microsoft .NET Framework - Метод Encoding.Convert
  19. ^ MultiByteToWideChar / WideCharToMultiByte - преобразование из ANSI в Unicode и Unicode в ANSI
  20. ^ Конвертер набора символов Калитты
  21. ^ "Чрезвычайно наивный анализатор кодировки" . Архивировано из оригинального 15 марта 2012 года . Проверено 31 марта 2011 года .

Дальнейшее чтение [ править ]

  • Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие . Серия системного программирования (1-е изд.). ISBN издательства Addison-Wesley Publishing Company, Inc.  978-0-201-14460-4. LCCN  77-90165 .

Внешние ссылки [ править ]

  • Наборы символов, зарегистрированные Управлением по присвоению номеров в Интернете (IANA)
  • Персонажи и кодировки , Юкка Корпела
  • Технический отчет Unicode # 17: Модель кодировки символов
  • Десятичные, шестнадцатеричные коды символов в HTML Unicode - конвертер кодирования
  • Абсолютный минимум, который должен знать каждый разработчик программного обеспечения о Unicode и наборах символов (без оправданий!) Джоэл Спольски (10 октября 2003 г.)