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

Поделись знанием:
Перейти к: навигация, поиск

Широкий символ — термин, относящийся к программированию. Он используется для обозначения символьного типа данных, который шире традиционных 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>.

К:Википедия:Статьи без источников (тип: не указан)

Напишите отзыв о статье "Широкий символ"



Ссылки

  • [unicode.org/versions/Unicode4.0.0/ch05.pdf Стандарт Юникод, Версия 4.0]


Отрывок, характеризующий Широкий символ


Когда Наташа привычным движением отворила его дверь, пропуская вперед себя княжну, княжна Марья чувствовала уже в горле своем готовые рыданья. Сколько она ни готовилась, ни старалась успокоиться, она знала, что не в силах будет без слез увидать его.
Княжна Марья понимала то, что разумела Наташа словами: сним случилось это два дня тому назад. Она понимала, что это означало то, что он вдруг смягчился, и что смягчение, умиление эти были признаками смерти. Она, подходя к двери, уже видела в воображении своем то лицо Андрюши, которое она знала с детства, нежное, кроткое, умиленное, которое так редко бывало у него и потому так сильно всегда на нее действовало. Она знала, что он скажет ей тихие, нежные слова, как те, которые сказал ей отец перед смертью, и что она не вынесет этого и разрыдается над ним. Но, рано ли, поздно ли, это должно было быть, и она вошла в комнату. Рыдания все ближе и ближе подступали ей к горлу, в то время как она своими близорукими глазами яснее и яснее различала его форму и отыскивала его черты, и вот она увидала его лицо и встретилась с ним взглядом.
Он лежал на диване, обложенный подушками, в меховом беличьем халате. Он был худ и бледен. Одна худая, прозрачно белая рука его держала платок, другою он, тихими движениями пальцев, трогал тонкие отросшие усы. Глаза его смотрели на входивших.
Увидав его лицо и встретившись с ним взглядом, княжна Марья вдруг умерила быстроту своего шага и почувствовала, что слезы вдруг пересохли и рыдания остановились. Уловив выражение его лица и взгляда, она вдруг оробела и почувствовала себя виноватой.
«Да в чем же я виновата?» – спросила она себя. «В том, что живешь и думаешь о живом, а я!..» – отвечал его холодный, строгий взгляд.