Широкий характер
-
История и расширение символьных типов
- В 1960-х годах был стандартизирован 8-битный байт для хранения символов ASCII.
- Дополнительный бит использовался для обеспечения четности данных.
- Производители компьютеров расширили набор символов ASCII, добавив поддержку греческого и кириллического языков.
- Эти расширения были ограничены в использовании и требовали специальных процедур преобразования.
-
Универсальные наборы символов и Unicode
- В 1989 году началась разработка UCS, многоязычного набора символов, который мог быть закодирован в 16 или 32 бита.
- Широкий символ используется для обозначения символьных типов данных, превышающих 8 бит.
- UCS и Unicode являются общими наборами символов, кодирующими больше символов, чем 8-битное числовое значение.
-
Связь с многобайтовыми символами и кодировками
- Современные системы передачи данных часто не поддерживают 16-битные и 32-битные каналы передачи символьных данных.
- UTF-8 используется для кодирования значений, превышающих один 8-битный символ.
- Стандарт C различает многобайтовые кодировки символов и широкие символы, которые используются во время выполнения.
-
Размер широкого символа и кодировки
- В Windows и .NET используется 16-битный тип «широкого символа» (wchar_t).
- Unix-подобные системы используют 32-битный wchar_t для соответствия 21-битной кодовой точке Unicode.
- Размер широкого символа не определяет, какие кодировки текста может обрабатывать система.
-
Особенности программирования
- Стандартные библиотеки C и C++ предоставляют средства для работы с широкими символами.
- В Python 2.7 wchar_t используется для символьного типа Py_UNICODE, но в Python 3.3 и более поздних версиях используется гибкий размер хранилища UCS1/2/4.
-
Рекомендации и ресурсы
- Ссылки на Википедию, общие ресурсы и учебные материалы по Unicode и наборам символов.
Полный текст статьи: