L'UTF-16 ha un qualche tipo di separatore in esso?

-3

Dalla voce di Wikipedia di UTF-16, la seconda frase afferma che si tratta di una codifica a lunghezza variabile.

Ma dov'è il separatore tra un carattere a 16 bit e la codifica a 32 bit? So che molti personaggi possono essere memorizzati nel carattere a 16 bit, quindi le persone possono ottimizzare UTF-6 in questo modo, ma sono comunque curioso perché potrebbe arrivare un momento in cui potremmo superare il segno a 16 bit.

E non preoccuparti, so che l'UTF-8 è standard. Sono solo curioso.

    
posta Arrow 17.06.2015 - 20:22
fonte

2 risposte

9

Sembra che tu stia chiedendo il meccanismo che consente a UTF-16 di rappresentare i caratteri a 32 bit, che è chiamato coppie surrogate . Questo articolo di Wikipedia lo spiega abbastanza bene.

Per inciso, abbiamo superato 16 bit molto tempo fa. In effetti, il motivo principale per cui UTF-16 è ampiamente utilizzato è che la codifica UCS-2 a lunghezza fissa è diventata popolare quando la gente pensava che 16 bit sarebbero stati sufficienti, quindi non lo era, quindi UTF-16 è facile da usare. opzione port-to per tutti coloro che hanno iniziato a utilizzare UCS-2.

    
risposta data 17.06.2015 - 20:30
fonte
4

È un principio molto simile a UTF-8. In UTF-8, puoi guardare un singolo byte e può essere un "single code code point", "first of two bytes", "first of three bytes", "first of four bytes" o "continuation of two" punto di codice a tre o quattro byte ".

In UTF-16, puoi guardare un singolo valore a 16 bit, ed è un "singolo codice a 16 bit word point", o "prima di due metà" o "secondo di due metà": i codici D800 to DBFF sono "first half", i codici da DC00 a DCFF sono "secondi secondi" e per ottenere un punto di codice a 32 bit si combinano gli ultimi dieci bit di ciascuno, fornendo un valore di 20 bit e aggiungendo 0x10000.

    
risposta data 17.06.2015 - 21:40
fonte

Leggi altre domande sui tag