Сегодня я изучал некоторые основы C ++ и узнал о wchar_t
, Я не смог понять, зачем нам нужен этот тип данных и как его использовать?
wchar_t
предназначен для представления текста в фиксированная ширина, многобайтовой кодировок; поскольку wchar_t
обычно имеет размер 2 байта и может использоваться для представления текста в любой 2-байтовой кодировке. Он также может быть использован для представления текста в переменная ширина многобайтовые кодировки, из которых наиболее распространенным является UTF-16.
На платформах где wchar_t
имеет размер 4 байта и может использоваться для представления любого текста с использованием UCS-4 (Unicode), но поскольку на большинстве платформ это всего 2 байта, он может представлять Unicode только в кодировке с переменной шириной (обычно UTF-16). Это более распространенное использование char
с кодированием переменной ширины, например UTF-8 или GB 18030.
О единственной современной операционной системе для использования wchar_t
экстенсивно это винда; это потому, что Windows приняла Unicode до того, как он был расширен за пределы U + FFFF, и поэтому 2-байтовое кодирование фиксированной ширины (UCS-2) показалось разумным. Теперь UCS-2 недостаточно для представления всего Unicode, и поэтому Windows использует UTF-16, все еще с wchar_t
2-байтовые единицы кода.
wchar_t
используется, когда вам нужно хранить символы с кодами больше 255 (имеет большее значение, чем char
можно хранить).
char
может принимать 256 различных значений, что соответствует записям в таблицах ISO Latin. С другой стороны, широкий символ может принимать более 65536 значений, что соответствует значениям Юникода. Это недавний международный стандарт, который позволяет кодировать символы практически для всех языков и широко используемых символов.
wchar_t
это широкий характер. Он используется для представления символов, которые требуют больше памяти для их представления, чем обычные char
, Это, например, широко используется в Windows API.
Тем не менее, размер wchar_t
зависит от реализации и не может быть больше, чем char
, Если вам нужно поддерживать определенную форму формата символов, превышающую 8 бит, вы можете обратиться к char32_t
а также char16_t
которые гарантированно будут 32 и 16 бит соответственно.
wchar_t тип данных используется для отображения wide characters that will occupy 16 bits
, Этот тип данных занимает 2 или 4 байта.
В основном wchar_t
Тип данных используется, когда используются международные языки, такие как японский.
Тип wchar_t используется для символов расширенных наборов символов. Среди прочего используется с wstring, который представляет собой строку, которая может содержать отдельные символы расширенных наборов символов, в отличие от строки, которая может содержать отдельные символы размера char, или использовать более одного символа для представления одного знака (например, utf8 ).
Размер wchar_t зависит от локали и, согласно стандарту, может представлять все члены самого большого расширенного набора символов, поддерживаемого локалями.