UTF-8 Introducción
UTF-8 Es una especie de Unicode Codificación de caracteres de longitud variable , Código Internacional .
UTF-8 Con 1 A 6 Codificación de bytes UNICODE Carácter .
UTF-8 Reglas de Codificación
Si sólo hay un byte, su bit binario más alto es 0;
Si es multibyte , Su primer Byte comienza en el nivel más alto , Los valores binarios sucesivos son 1 El número de bytes codificados determina el número de bytes codificados. , Todos los demás bytes 10 Principio .
Unicode/UCS-4 | bit Número | UTF-8 | byte Número | Observaciones |
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 | Alcance de la definición básica :0~FFFF |
1 0000~ 1F FFFF | 17~21 | 1111 0XXX 10XX XXXX 10XX XXXX 10XX XXXX | 4 | Unicode6.1 Alcance de la definición :0~10 FFFF |
20 0000~ 3FF FFFF | 22~26 | 1111 10XX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 5 | Descripción : Este no unicode Rango de Codificación , Pertenecer UCS-4 Codificación Normas tempranas UTF-8 Accesible 6 Secuencia de bytes , Puede sobrescribir 31 Bit ( Límites originales del juego de caracteres genérico ). Sin embargo, ,2003 Año 11 Mes UTF-8 Ser RFC 3629 Reformulación , Use sólo el original Unicode Área definida ,U+0000 A U+10FFFF. Según las especificaciones , Estos valores de bytes no aparecerán en el UTF-8 En secuencia |
400 0000~ 7FFF FFFF | 27~31 | 1111 110X 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX 10XX XXXX | 6 |
UTF-8 Ventajas
UTF-8 La codificación se puede leer y escribir rápidamente a través de bits enmascarados y operaciones de cambio . Comparación de cadenas strcmp() Y wcscmp() Devuelve el mismo resultado , Por lo tanto, hacer la clasificación más fácil . Byte FF Y FE En UTF-8 Nunca aparece en la codificación , Por lo tanto, pueden ser utilizados para indicar UTF-16 O UTF-32 Texto ( Ver BOM) UTF-8 Es independiente del orden de bytes . Su orden de bytes es el mismo en todos los sistemas , Por lo tanto, en realidad no necesita BOM.
UTF-8 Deficiencias
No puedes UNICODE Número de caracteres UTF-8 Bytes de texto , Porque UTF-8 Es una codificación de longitud variable que necesita usar 2 Codificación de bytes que utilizan extensiones ASCII El juego de caracteres sólo necesita 1 Caracteres de bytes ISO Latin-1 Sí. UNICODE Subconjunto de , Pero no UTF-8 Subconjunto de 8 Caracteres de bits UTF-8 La codificación será email Filtro Gateway , Porque internet La información fue diseñada originalmente para 7 Bit ASCII Código . Y así surgió UTF-7 Codificación . UTF-8 Usar valores en su representación 100xxxxx Las probabilidades superan 50%, Y las implementaciones existentes son ISO 2022, 4873, 6429, Y 8859 Sistema , Lo malinterpretaría como C1 Código de control . Y así surgió UTF-7.5 Codificación .