Wide characters & UTF-8 in C
Në shqip: Shkronjat speciale në C
ShpjegimiSQ
Në C, një char është vetëm 1 bajt, por shkronjat si ë dhe ç në UTF-8 zënë 2 bajtë — prandaj strlen("ë") jep 2! Për të punuar me to si shkronja të plota, përdoren wchar_t dhe setlocale(), ose librari për UTF-8.
EnglishEN
In C, a char is just 1 byte, but letters like ë and ç take 2 bytes in UTF-8 — so strlen("ë") gives 2! To handle them as whole characters, you use wchar_t and setlocale(), or a UTF-8 library.
Si ta mendosh
Si një kuti këpucësh ku disa këpucë janë aq të mëdha sa zënë dy vende.
Lexoje në anglisht
Like a shoe rack where some shoes are so big they take two slots.
Shembull kodic
printf("%zu\n", strlen("Kosovë")); // 7, jo 6
setlocale(LC_ALL, "");
wprintf(L"%ls\n", L"Përshëndetje");