Cosa devo considerare durante la conversione da ASCII in Unicode?

4

Ad esempio se avessi solo caratteri ASCII e poi passati a Unicode ora devo considerare caratteri speciali e stringhe o caratteri più grandi. Cos'altro dovrei prendere in considerazione?

Suppongo che una stringa Unicode contenga caratteri speciali, ma a parte questo, cosa mi manca?

    
posta Luis Armando 03.05.2011 - 21:08
fonte

3 risposte

3

A seconda della codifica, è possibile ottenere dimensioni char maggiori (8 bit- > 16 bit), sebbene UTF-8 sia in grado di gestire un carattere Unicode con le stesse dimensioni di un carattere ASCII standard. I byte sono codificati e decodificati in Unicode (mentre ASCII non lo è, in quanto ha una relazione 1 a 1 con il valore di byte), dando una penalità di prestazioni minore. Esistono diverse codifiche Unicode, come UTF-8 (8 bit), UTF-16 (16 bit) e UTF-32 (32 bit, non ho mai visto questo in uso).

Ottieni vantaggi, più caratteri. Questo è necessario se vuoi internazionalizzare il tuo programma su una serie di diversi lamguages perché potrebbero usare caratteri diversi da quelli dell'alfabeto inglese. Il poco spazio possibile e il guadagno di prestazioni raramente vale la pena di rimanere in ASCII nel caso in cui la tua lingua abbia incorporato il supporto per Unicode.

Alcuni software potrebbero avere problemi con Unicode, ma questo è tutt'altro che un problema oggi.

Unicode è un superset di ASCII, non perderai caratteri, solo guadagni. Dato che hai più personaggi, dovrai anche gestirne di più. Supponiamo che tu abbia un metodo per convertire una stringa in minuscolo, dovrai gestire molti caratteri diversi se hai usato Unicode invece di ASCII.

    
risposta data 03.05.2011 - 21:21
fonte
1

Ho usato UTF32 (UCS4) internamente; UCS2 ha caratteri a 16 bit e non è abbastanza abbastanza per Unicode. Era un decennio fa, ma non ora.

Uso UTF-8 per tutto l'I / O. ASCII è un sottoinsieme di UTF-8, quindi raramente hai a che fare con i caratteri estesi. Basta disegnare sopra 0x7E è un testo straniero strano e preservarlo ma ignorarlo.

La grande cosa che ottieni da Unicode è che puoi supportare tutte le lingue straniere contemporaneamente. Con altre codifiche puoi supportare tedesco e russo, cinese e tailandese, ma non sulla stessa pagina. Puoi anche inserire le stringhe della lingua cinese nel tuo codice sorgente. Crea tutto su UTF-8 e dimenticarlo.

Bene, quasi; L'ebraico e l'arabo vanno da destra a sinistra e richiedono talvolta lavoro extra.

    
risposta data 04.05.2011 - 11:43
fonte
0

Non dimenticare il caso del "ritorno". Se si spostano i dati da UTF-8 a ASCII (ad esempio, è necessario creare un file di testo da inserire in un sistema legacy), si perdono i caratteri e si deve considerare di nuovo la Pagina codice attiva.

    
risposta data 04.05.2011 - 00:19
fonte

Leggi altre domande sui tag