In che modo la terra CHRW produce codici unicode dato che accetta solo 65k di input possibili?

7

Il link dice che ci sono 1 milione di caratteri unicode e circa 240k di cui sono già assegnati.

1 milione > 240k > 65k

Tuttavia,

link dice che chrw accetta 65k caratteri.

Non solo che chrw accetta l'intero. L'intero è 4 byte in vb.net e può memorizzare più di 65 caratteri.

I numeri non corrispondono e quindi cosa mi manca?

    
posta user4951 23.05.2012 - 06:59
fonte

1 risposta

10

È probabile che questo metodo supporti solo il piano multilingue multilingue di Unicode. Quel Piano contiene i 64k inferiori dei codepoint e può essere rappresentato con un tipo di dati a 16 bit.

C'è stato un tempo in cui il BMP era definito dallo standard Unicode e in quel momento molte lingue e / o runtime hanno aggiunto "supporto Unicode". Hanno pensato che 16 bit sarebbero sempre sufficienti e quindi "Unicode" è uguale a "16 bit caratteri" in molti posti (anche se questo è sbagliato in questi giorni). Per essere onesti: il consorzio Unicode ha anche pensato che il 16 bit dovrebbe essere sufficiente per tutti.

Unicode 2.0 tuttavia ha introdotto piani aggiuntivi ed era chiaro che 16 bit non sono più sufficienti per rappresentare ogni possibile punto di codice Unicode.

La "soluzione" di solito è usare UTF-16 anziché UCS-2. Non sto solo criticando .NET per questo: Java è caduto nella stessa trappola, con un tipo di datichar di 16 bit e ora deve supportare% istanze diString che richiedono 2 "caratteri" per rappresentare un singolo punto di codice.

    
risposta data 23.05.2012 - 07:22
fonte

Leggi altre domande sui tag