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


Набо́р си́мволов (англ. character set) — таблица, задающая кодировку конечного множества символов алфавита (обычно элементов текста: букв, цифр, знаков препинания). Такая таблица сопоставляет каждому символу последовательность длиной в один или несколько символов другого алфавита (точек и тире в коде Морзе, сигнальных флагов на флоте, нулей и единиц (битов) в компьютере).

Хотя термин «набор символов» (англ. character set, charset), узаконенный интернет-стандартом RFC 2278, сейчас является, пожалуй, наиболее авторитетным, предшествовавший ему термин «кодировка» (англ. encoding) по-прежнему используется в качестве синонима, в частности, в языках программирования Java[1], Perl[2] и XSLT[3], а также в HTML[4].

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

В настоящее время в основном используются кодировки трёх типов: совместимые с ASCII, совместимые с EBCDIC и основанные на Юникоде 16-битные, с подавляющим преобладанием первых. Представление UTF-8 Юникода совместимо с ASCII. Кодировки на базе EBCDIC (например, ДКОИ) используются только на некоторых мэйнфреймах. Первоначально в каждой операционной системе использовался один набор символов. Теперь используемые наборы символов стандартизованы[5], зависят от типа операционной системы лишь по традиции и устанавливаются согласно локали.

Современные 8-битные вычислительные платформы характеризуются небольшими объёмами ОЗУ и ПЗУ; многобайтные кодировки в таких изделиях значительного распространения не получили. Причиной тому не только больший объём, занимаемый текстовыми данными, представленными в многобайтной кодировке, но и отсутствие «лишней» памяти для хранения графического представления дополнительных символов, а также трудность обработки таких строк. В настоящее время часто используются следующие стандартные однобайтные кодировки:

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