UTF-8 breve introduzione
UTF-8 È una specie di Unicode Codifica caratteri di lunghezza variabile per , Conosciuto anche come "codice universale" .
UTF-8 uso 1 reach 6 Codifica byte UNICODE carattere .
UTF-8 Norme di codificazione
Se c'è un solo byte, il suo bit binario più alto è: 0;
Se è multi byte , Il primo byte inizia dal bit più alto , I valori binari consecutivi sono: 1 Il numero di byte determina il numero di byte che codifica , I byte rimanenti sono rappresentati da 10 inizio .
Unicode/UCS-4 | bit numero | UTF-8 | byte numero | osservazioni |
0000~ 007F | 0~7 | 0XXX XXXX | 1 | |
0080~ 07FF | 8~11 | 110X XXXX 10XX XXXX | 2 | |
0800~ FFFF | 12~16 | 1110XXXX 10XX XXXX 10XX XXXX | 3 | Intervallo di definizione di base :0~FFFF |
1 0000~ 1F FFFF | 17~21 | 1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX | 4 | Unicode6.1 Intervallo di definizione :0~10 FFFF |
20 0000~ 3FF FFFF | 22~26 | 1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 5 | spiegare : Questo non è unicode Campo di codifica: , appartiene a UCS-4 codice Norme iniziali UTF-8 Raggiungibile 6 Sequenza di byte , Può essere sovrascritto a 31 Bit ( I limiti originali del set di caratteri universali ). Per tutto questo ,2003 anno 11 mese UTF-8 cover RFC 3629 Rispecificazione , Solo l'originale Unicode Area definita ,U+0000 reach U+10FFFF. Secondo le specifiche , Questi valori di byte non verranno visualizzati nella versione legale UTF-8 In sequenza |
400 0000~ 7FFF FFFF | 27~31 | 1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 6 |
UTF-8 vantaggio
UTF-8 La codifica può essere letta e scritta rapidamente mascherando i bit e spostando le operazioni . Confronto stringhe strcmp() e wcscmp() I risultati di rendimento sono gli stessi , Pertanto, lo smistamento diventa più facile . byte FF e FE soggiorno UTF-8 Non comparire mai nel codice , Pertanto, possono essere utilizzati per indicare UTF-16 o UTF-32 testo ( vedi BOM) UTF-8 È indipendente dall'ordine dei byte . Il suo ordine di byte è lo stesso in tutti i sistemi , Quindi non serve BOM.
UTF-8 carenze
Non puoi UNICODE A giudicare dal numero di caratteri UTF-8 Bytes di testo , perché UTF-8 È un codice di lunghezza variabile. Deve usare 2 Bytes codificano quelli con estensione ASCII Solo il set di caratteri necessita 1 Caratteri di byte ISO Latin-1 sì UNICODE Sottoinsieme di , Ma non UTF-8 Sottoinsieme di 8 Carattere bit UTF-8 La codifica sarà email Filtro gateway , perché internet Le informazioni sono state originariamente progettate per: 7 posizione ASCII codice . Di conseguenza UTF-7 codice . UTF-8 Usa i valori nella sua rappresentazione 100xxxxx La probabilità di superare 50%, Attuazioni esistenti, quali ISO 2022, 4873, 6429, e 8859 sistema , Lo confonderà per C1 Codice di controllo . Di conseguenza UTF-7.5 codice .