Perché la lunghezza di alcuni caratteri, ad es. il seguente 'ᨒ' 3 quando dovrebbe essere 2
ᨒ U + 1a12
1a12 significa 6674
2 ^ 16 è 65536 quindi 6674 dovrebbe richiedere solo 2 byte e non tre
Perché la lunghezza di alcuni caratteri, ad es. il seguente 'ᨒ' 3 quando dovrebbe essere 2
ᨒ U + 1a12
1a12 significa 6674
2 ^ 16 è 65536 quindi 6674 dovrebbe richiedere solo 2 byte e non tre
Il codice 6674 richiede almeno 13 bit binari da codificare. UTF-8 richiede 5 bit di prefisso per indicare che un valore Unicode codificato a 2 byte non è solo due normali caratteri ASCII a 7 bit. 13 + 5 = 18, che è superiore a 16 bit o 2 byte. Quindi ci vogliono 3 byte per codificare (aggiungendo altri 2 bit prefissi Unicode).
Ci sono 3 codifiche di unicode: UTF-8, UTF-16, UTF-32
In UTF-8 ci vogliono 3 byte: 0xE1 0xA8 0x92
come UTF-8 ha caratteri di lunghezza variabile.
UTF-16 richiederebbe 2 byte: 0x1A12
come UTF-16 ha caratteri di lunghezza fissa
Lunghezza carattere UTF-8 dalla pagina di Wikipedia:
Last code point Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6
7 U+007F 0xxxxxxx
11 U+07FF 110xxxxx 10xxxxxx
16 U+FFFF 1110xxxx 10xxxxxx 10xxxxxx
21 U+1FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
26 U+3FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
31 U+7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Leggi altre domande sui tag unicode