Широкий символ — термін, що стосується програмування. Він використовується для позначення символьного типу даних, який ширший за традиційні 8-бітні символи. Це не те саме, що Юнікод.
wchar_t — це тип даних стандарту ANSI/ISO C (а також використовується в інших мовах програмування) для подання широких символів.
У стандарті Unicode 4.0 сказано:
а також
У 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>.
Посилання Стандарт Юнікод, Версія 4.0