Caracterul larg este un termen legat de programare. Este folosit pentru a desemna un tip de date caracter care este mai larg decât caracterele tradiționale de 8 biți. Nu este același lucru cu Unicode .
wchar_t este un tip de date ANSI/ISO C (și folosit și în alte limbaje de programare) pentru a reprezenta caractere largi.
Standardul Unicode 4.0 spune asta:
„ANSI/ISO C lasă semantica caracterelor largi la latitudinea implementării individuale”
precum și
„mărimea unui tip wchar_teste determinată de compilator, până la un minim de 8 biți. În consecință, aplicațiile care trebuie să mențină portabilitatea între compilatoarele C și C++ nu ar trebui să utilizeze wchar_ttext Unicode pentru stocare. Tipul wchar_teste destinat să stocheze caractere largi, așa cum sunt înțelese de anumite compilatoare, și este posibil să nu fie conformă cu Unicode .
În API-ul Windows , tipul wchar_t este denumit WCHAR și are o dimensiune fixă de 16 biți, ceea ce împiedică codificarea întregului set de caractere Unicode (mai mult de 1 milion). Prin urmare, încalcă standardul ANSI/ISO C, care necesită ca tipul de caractere wchar_t să accepte toate caracterele reprezentabile de sistem într-un singur obiect wchar_t . De fapt, în WinAPI, WCHAR înseamnă un cuvânt de 2 octeți din codificarea UTF-16LE (ca tip WORD ), astfel încât caracterele cu coduri mai mari decât FFFF 16 sunt codificate cu o pereche WCHAR (așa-numitele „surogate”) și nu numărul de caractere este transmis tuturor funcțiilor API și dimensiunea matricei de caractere în cuvinte mașină.
Pe GNU/Linux, un tip wchar_tare 32 de biți.
În biblioteca ANSI C , fișierele antet < wchar.h > și < wctype.h > sunt responsabile pentru caracterele largi.