Широкий символ

Широкий символ

Широкий символ — это термин, относящийся к программированию. Он используется для обозначения символьного типа данных, который шире традиционных 8-битных символов. Это не то же самое, что Юникод.

wchar_t — это тип данных стандарта ANSI/ISO C (а также использующийся в других языках программирования) для представления широких символов.

Стандарт Unicode 4.0 говорит следующее:

«ANSI/ISO C оставляет семантику широких символов на усмотрение конкретной реализации»

а также

«размер типа wchar_t определяется компилятором, вплоть до минимальных 8 бит. Соответственно, приложения, которым требуется сохранять переносимость на различных C и C++ компиляторах, не должны использовать wchar_t для хранения Unicode-текста. Тип wchar_t предназначен для хранения широких символов в том виде, в котором их понимают конкретные компиляторы, и это может не соответствовать Юникоду».

В Windows API, тип wchar_t именуется как WCHAR и имеет фиксированный размер 16 бит, что не позволяет кодировать весь набор символов Unicode (больше 1 миллиона). Поэтому нарушается стандарт ANSI/ISO C, который требует, чтобы символьный тип wchar_t поддерживал все представимые в системе символы в одном объекте wchar_t. По сути в WinAPI под WCHAR подразумевается 2-байтное слово из кодировки UTF-16LE (как тип WORD). Поэтому символы с кодами выше FFFF16 кодируются парой WCHAR (так называемые «суррогаты»). И всем API-функциям передаётся не количество символов, а размер символьного массива в машинных словах.

В GNU/Linux тип wchar_t имеет размер 32 бита.

В библиотеке ANSI C за широкие символы отвечают заголовочные файлы <wchar.h> и <wctype.h>.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Широкий символ" в других словарях:

  • Символ — У этого термина существуют и другие значения, см. Символ (значения). Символ (из греч. σύμβολον)  это знак, изображение какой нибудь вещи или животного для означения качества предмета[1]; условный знак каких либо понятий, идей,… …   Википедия

  • Wchar t — Широкий символ  это термин, относящийся к программированию. Он используется для обозначения символьного типа данных, который шире традиционных 8 битных символов. Это не то же самое, что Юникод. wchar t  это тип данных стандарта ANSI/ISO C (а… …   Википедия

  • Юникод — Юникод[1] или Уникод[2] (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков …   Википедия

  • UCS-4 — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UNICODE — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UTF-32LE — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UTF-32 Little Endian — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UTF — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UTF-7 — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия

  • UTF-32BE — Юникод, или Уникод (англ. Unicode)  стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium,… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»