Un byte de continuación en UTF-8 es cualquier byte donde los dos bits superiores son 10
.
Son los bytes subsiguientes en las secuencias de múltiples bytes. La siguiente tabla puede ayudar a:
Unicode code points Range Encoding Binary value
------------------- -------- --------------------------
U+000000-U+00007f 0xxxxxxx 0xxxxxxx
U+000080-U+0007ff 110yyyxx 00000yyy xxxxxxxx
10xxxxxx
U+000800-U+00ffff 1110yyyy yyyyyyyy xxxxxxxx
10yyyyxx
10xxxxxx
U+010000-U+10ffff 11110zzz 000zzzzz yyyyyyyy xxxxxxxx
10zzyyyy
10yyyyxx
10xxxxxx
Aquí se puede ver cómo el Unicode puntos de código de mapa para secuencias de bytes de múltiples bytes UTF-8, y sus valores binarios equivalentes.
Las reglas básicas son esto:
- Si un byte comienza con un poco
0
, es un único valor de byte menos de 128.
- Si comienza con
11
, es el primer byte de un multi -la secuencia de bytes y el número de bits 1
al inicio indica cuántos bytes hay en total (110xxxxx
tiene dos bytes, 1110xxxx
tiene tres y 11110xxx
tiene cuatro).
- Si comienza con
10
, es un byte de continuación.
Esta distinción permite el procesamiento bastante práctico, tales como ser capaz de realizar copias de seguridad de cualquier byte en una secuencia de encontrar el primer byte de ese punto de código. Simplemente busque hacia atrás hasta encontrar uno que no comience con los bits 10
.
Del mismo modo, también se puede utilizar para un UTF-8 strlen
contando solamente 10xxxxxx
bytes.
Parece que alguien acaba de editar el artículo de Wikipedia. (: – tripleee