Эту статью предлагается удалить. |
Набо́р си́мволов (англ. character set) — таблица, задающая кодировку конечного множества символов алфавита (обычно элементов текста: букв, цифр, знаков препинания). Такая таблица сопоставляет каждому символу последовательность длиной в один или несколько символов другого алфавита (точек и тире в коде Морзе, сигнальных флагов на флоте, нулей и единиц (битов) в компьютере).
Набор символов в компьютере
правитьСимволы в компьютере обычно кодируются одним или нескольким байтами (группами из восьми битов).
Хотя термин «набор символов» (англ. character set, charset), узаконенный интернет-стандартом RFC 2278, сейчас является, пожалуй, наиболее авторитетным, предшествовавший ему термин «кодировка» (англ. encoding) по-прежнему используется в качестве синонима, в частности, в языках программирования Java[1], Perl[2] и XSLT[3], а также в HTML[4].
Нередко также вместо термина «набор символов» неправильно употребляют термин «кодовая страница», означающий на самом деле частный случай набора символов с однобайтным кодированием.
В настоящее время в основном используются кодировки трёх типов: совместимые с ASCII, совместимые с EBCDIC и основанные на Юникоде 16-битные, с подавляющим преобладанием первых. Представление UTF-8 Юникода совместимо с ASCII. Кодировки на базе EBCDIC (например, ДКОИ) используются только на некоторых мэйнфреймах. Первоначально в каждой операционной системе использовался один набор символов. Теперь используемые наборы символов стандартизованы[5], зависят от типа операционной системы лишь по традиции и устанавливаются согласно локали.
В Википедии и других проектах Фонда Викимедиа используется Юникод UTF-8.
Современные 8-битные вычислительные платформы характеризуются небольшими объёмами ОЗУ и ПЗУ; многобайтные кодировки в таких изделиях значительного распространения не получили. Причиной тому не только больший объём, занимаемый текстовыми данными, представленными в многобайтной кодировке, но и отсутствие «лишней» памяти для хранения графического представления дополнительных символов, а также трудность обработки таких строк. В настоящее время часто используются следующие стандартные однобайтные кодировки:
- В программах на английском языке — CP437;
- В программах на русском языке используются такие варианты:
- CP866 — чаще используется более опытными инженерами, начинавшими работать в DOS; позволяет рисовать псевдографические «рамки», но требует хранения исходного текста ПО именно в этой кодовой странице, что бывает затруднительно для начинающих;
- CP1251 — используется, если необходимо иметь русские символы непрерывным массивом для лёгкости их обработки, и в случае наличия ОС Windows, перекодировать такой текст можно без использования стороннего ПО. Но, не позволяет рисовать «рамки».
Автоматическое распознавание кодировок
правитьВо многих современных текстовых редакторах и браузерах присутствует функция автоматического распознавания кодировок, но она не всегда выдает верный результат. Иногда бывает, что текст, набранный например в командной строке или некоторых программах, неверно декодируется, и вместо нормальных слов получается набор непонятных символов. Справиться с прочтением такого текста может помочь большое количество декодеров текста, которые работают онлайн.
Для однобайтных кодировок нужно учитывать тот факт, что частотность использования разных букв сильно различается (например, в русском часто используется «о», но редко «ъ»). Поэтому, зная язык текста, можно легко выбрать кодировку, в которой частотность байтов лучше соответствует частотности букв данного языка.[6]
Альтернативная точка зрения считает подобные эвристические алгоритмы определения кодировки текста вредными, поскольку современные информационные технологии располагают средствами недвусмысленно сопоставить тексту положенную ему кодовую страницу (см., например, MIME). Широкое же распространение эвристических анализаторов поощряет использование некачественных программ создания текстовых данных, нарушающих стандарты.
Распространённые кодировки
править- ISO 646
- BCDIC
- EBCDIC
- ISO 8859:
- Кодировки Microsoft Windows:
- Windows-1250 для языков Центральной Европы, которые используют латинское написание букв (польский, чешский, словацкий, венгерский, словенский, хорватский, румынский и албанский)
- Windows-1251 для кириллических алфавитов
- Windows-1252 для западных языков
- Windows-1253 для греческого языка
- Windows-1254 для турецкого языка
- Windows-1255 для иврита
- Windows-1256 для арабского языка
- Windows-1257 для балтийских языков
- Windows-1258 для вьетнамского языка
- MacRoman, MacCyrillic
- КОИ8 (KOI8-R, KOI8-U…), КОИ-7
- Болгарская кодировка
- ISCII
- VISCII
- Big5 (наиболее знаменитый вариант Microsoft CP950)
- Guobiao
- Shift JIS для японского языка (Microsoft CP932)
- EUC-KR для корейского языка (Microsoft CP949)
- ISO-2022 и EUC для китайской письменности
- Кодировки UTF-8, UTF-16 и UTF-32 набора символов Юникод
См. также
правитьСсылки
правитьПримечания
править- ↑ Перечень основных «кодировок» в руководстве по Java SE 6 . Дата обращения: 27 сентября 2008. Архивировано 16 декабря 2008 года.
- ↑ Обсуждение темы «кодировок» в документации по языку Perl . Дата обращения: 27 сентября 2008. Архивировано 6 октября 2008 года.
- ↑ Обсуждение темы «кодировок» в документации по технологии XSLT . Дата обращения: 5 октября 2008. Архивировано 13 августа 2017 года.
- ↑ Обсуждение соотношения терминов «кодировка» и «набор символов» в документации по языку HTML . Дата обращения: 11 октября 2008. Архивировано 26 октября 2008 года.
- ↑ Спецификации наборов символов на сайте IANA . Дата обращения: 27 сентября 2008. Архивировано 16 июля 2004 года.
- ↑ Универсальный декодер — конвертер кириллицы . Дата обращения: 4 декабря 2014. Архивировано 28 декабря 2014 года.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |