Qual è la differenza tra "Set caratteri grandi" e "Set caratteri Unicode"? [chiuso]

1

Oggi stavo leggendo il mio libro di programmazione C ++ preferito (C ++ Primer Plus) e la sezione riguardante variabili e set di caratteri in C ++, tuttavia mi sono davvero confuso riguardo al set di caratteri Unicode e Wide.

Qualcuno può spiegarmi perché dovremmo usare wchar_t? e non è possibile usare Unicode (\ u) invece di esso?

    
posta gnat 23.08.2015 - 18:16
fonte

1 risposta

2

Unicode ha diverse codifiche, la più usata è la lunghezza variabile UTF-8 codifica (su byte da 8 bit, ovvero char sulla maggior parte delle implementazioni C ++). Quindi prendi il carattere n th Unicode (o punto codice ) in una stringa di byte UTF-8 richiede l'iterazione su quella stringa (perché un singolo carattere Unicode può richiedere da 1 a 6 byte). UTF-8 è oggi molto comune (ad esempio utilizzato nella maggior parte dei siti Web). Vedi utfeverywhere.org suggerito da un commento di Erik Eidt . Forse usa una libreria UTF8 (come libunistring per C o utf8cpp per C ++)

wchar_t potrebbe essere 16 bit -e.g. per UTF-16 - (ma spesso 32 bit e IIRC i 32 bit sono richiesti dall'ultimo C ++ 14 standard, ma potrei sbagliarmi) e wchar_t potrebbe utilizzare una codifica non Unicode.

AFAIK, un'implementazione potrebbe fornire char e wchar_t stringhe senza avere Unicode (almeno per i vecchi standard C ++ fino a C ++ 03).

Nel secolo scorso esistevano molti standard e codifiche di caratteri incompatibili (e incompatibili con Unicode), ad es. EBCDIC sui mainframe, KOI per cirillico, ecc.

    
risposta data 23.08.2015 - 19:29
fonte

Leggi altre domande sui tag