Широкий символ — термін, що стосується програмування. Він використовується для позначення символьного типу даних, який ширший за традиційні 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>.
Посилання
- Стандарт Юнікод, Версія 4.0 [ 1 квітня 2022 у Wayback Machine.] (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Shirokij simvol termin sho stosuyetsya programuvannya Vin vikoristovuyetsya dlya poznachennya simvolnogo tipu danih yakij shirshij za tradicijni 8 bitni simvoli Ce ne te same sho Yunikod wchar t ce tip danih standartu ANSI ISO C a takozh vikoristovuyetsya v inshih movah programuvannya dlya podannya shirokih simvoliv U standarti Unicode 4 0 skazano ANSI ISO C zalishaye semantiku shirokih simvoliv na rozsud konkretnoyi realizaciyi a takozh rozmir tipu wchar t viznachaye kompilyator azh do minimalnih 8 bit Vidpovidno zastosunki yakim potribno zberigati perenosimist na riznih C i C kompilyatorah ne povinni vikoristovuvati wchar t dlya zberigannya Unicode tekstu Tip wchar t priznachenij dlya zberigannya shirokih simvoliv u tomu viglyadi v yakomu yih rozumiyut konkretni kompilyatori i ce mozhe ne vidpovidati Yunikodu U Windows API tip wchar t maye nazvu yak WCHAR i maye fiksovanij rozmir 16 bit sho ne dozvolyaye koduvati ves nabir simvoliv Unicode bilshe 1 miljona Tomu porushuyetsya standart ANSI ISO C yakij vimagaye shob simvolnij tip wchar t pidtrimuvav usi podani v sistemi simvoli v odnomu ob yekti wchar t Po suti u WinAPI pid WCHAR mayut na uvazi 2 bajtove slovo z koduvannya UTF 16LE yak tip WORD tomu simvoli z kodami vishe FFFF16 koduyutsya paroyu WCHAR tak zvani surogati i vsim API funkciyam peredayetsya ne kilkist simvoliv a rozmir simvolnogo masivu v mashinnih slovah U GNU Linux tip wchar t maye rozmir 32 biti U biblioteci ANSI C za shiroki simvoli vidpovidayut zagolovni fajli lt wchar h gt i lt wctype h gt PosilannyaStandart Yunikod Versiya 4 0 1 kvitnya 2022 u Wayback Machine angl