El almacenamiento de personajes en la computadora.

La visualización más común que se proporciona a los usuarios en la computadora es el carácter, también llamado texto. Hay muchos tipos de caracteres y cada idioma tiene su propio conjunto de caracteres. Entonces, ¿cómo almacenar tantos caracteres en la computadora?

Este artículo revela el almacenamiento de caracteres ingleses, chinos y todos los caracteres del mundo en la computadora.

Uno, la naturaleza del almacenamiento de caracteres.

Cada carácter se convierte en un número entero mediante la asignación del conjunto de caracteres y se almacena en la computadora, por lo que la esencia de almacenar caracteres es almacenar números enteros .

Entonces, ¿cómo determinar el número entero correspondiente a un carácter?

2. Juego de caracteres en inglés-ASCII

En la década de 1960, Estados Unidos formuló un conjunto de códigos de caracteres para regular uniformemente la relación entre caracteres ingleses y bits binarios. Esta regulación se llama el ASCII 码nombre completo de ASCII American Standard Code for Information Interchange, que es el "Código estándar estadounidense para el intercambio de información".

El código ASCII estipula que se usa un byte para almacenar caracteres en inglés. El primer bit se define uniformemente como 0, y los siguientes 7 bits determinan diferentes caracteres . Por lo tanto, el código ASCII especifica un total de 128 códigos de caracteres , que incluyen:

  • 96 caracteres imprimibles
    • Caracteres ingleses en mayúsculas y caracteres ingleses en minúsculas
    • Numerales arábigos
    • Puntuación
    • Símbolo especial
  • 32 símbolos de control no imprimibles

Para todos los caracteres especificados en el código ASCII, consulte la tabla de comparación de códigos ASCII completa y la explicación de cada carácter .

3. Conjunto de caracteres chinos

La civilización china tiene una larga historia. En la actualidad, hay alrededor de 100.000 caracteres chinos y hay miles de caracteres chinos de uso común. Obviamente, es imposible almacenar tantos caracteres con el conjunto de caracteres ASCII americano.

Juego de caracteres GB2312

En 1980, la Administración Estatal de Normas y Estándares de China formuló el primer juego de caracteres chinos: GB21312, el nombre completo es "Juego de caracteres codificados en caracteres chinos para el intercambio de información", que se utiliza para el intercambio de información entre el procesamiento de caracteres chinos y los sistemas de comunicación de caracteres chinos. Se incluyen un total de 6763 caracteres chinos. Hay 682 caracteres gráficos chinos.

GB2312 básicamente satisface las necesidades de procesamiento informático de los caracteres chinos. Los caracteres chinos que contiene cubren el 99,75% de la frecuencia de uso en China continental . Sin embargo, debido a la complejidad del chino, especialmente porque muchos de los caracteres contenidos en los nombres y nombres de lugares no están incluidos en GB2312, esto lleva a GB2312 se ha vuelto cada vez más incapaz de satisfacer las necesidades.

Debido a estos problemas de GB2312, el Comité Nacional de Normalización ha formulado GB13000. Los principios formulados por GB13000 son diferentes de GB2312. GB13000 apunta a la internacionalización. La codificación estándar se refiere a la codificación estándar Unicode 2.0 y es completamente incompatible con GB2312 . GB2312 se adoptó para los caracteres chinos y la transición a GB13000 no fue sencilla, por lo que GB13000 se convirtió en un estándar en papel y no se pudo promover.

Juego de caracteres GBK

Debido al fallo de GB13000, el Comité Nacional de Normalización promulgó el estándar GBK en 1995, el nombre completo es "Especificación de extensión de codificación de caracteres chinos". GBK es compatible con el estándar GB2312 . Al mismo tiempo, GB13000 se amplía sobre la base del estándar GB2312, pero la codificación es diferente.

El estándar GBK incluye más de 20.000 caracteres y símbolos chinos . Debido a que fue adoptado por primera vez por WINDOWS, su rango de aplicación es muy amplio.

Cuarto, el conjunto de caracteres del mundo Unicode.

Como se mencionó al principio, hay muchos idiomas en el mundo, y cada idioma tiene su propio juego de caracteres, lo cual es muy inconveniente y extremadamente propenso a confusiones. Por lo tanto, el juego de caracteres Unicode nació para incluir a todos los caracteres del mundo. , Formando un reglamento de codificación unificado . Unicode contiene actualmente más de 1 millón de símbolos, y la codificación de cada símbolo es única. Puede consultar al Consorcio Unicode para la tabla de correspondencia de símbolos específica .

Pero cabe destacar que Unicode es solo un conjunto de símbolos, solo especifica el código binario del símbolo, pero no especifica cómo se debe almacenar el código binario , es decir, la representación de cada símbolo en Unicode requiere al menos 2 bytes. Otros símbolos más grandes pueden requerir 3 bytes o 4 bytes, o incluso más.

Esto plantea una gran pregunta: ¿Cómo sabe la computadora que tres bytes representan un símbolo, en lugar de tres símbolos?

Este problema ha llevado a que Unicode no se popularice durante mucho tiempo, y varios países todavía usan sus propios conjuntos de codificación de caracteres.

Cinco, UTF-8

Después de la aparición de Internet, existía una gran necesidad de que el mundo utilizara un estándar de codificación de caracteres unificado. Impulsado por esta fuerte demanda, el problema del almacenamiento de codificación Unicode se resolvió con UTF-8 .

UTF-8 es un método de codificación de longitud variable . Puede utilizar de 1 a 4 bytes para representar un símbolo, y la longitud de bytes varía según los diferentes símbolos. El problema con el juego de caracteres Unicode es que la longitud de la codificación de caracteres siempre cambia , Esto es simplemente una combinación hecha en el cielo, y el juego de caracteres Unicode + método de codificación UTF-8 se populariza rápidamente.

Las reglas de codificación de UTF-8 son las siguientes:

  • Para símbolos de un solo byte, el primer bit del byte se establece en 0 y los siguientes 7 bits son el código Unicode de este símbolo. Por lo tanto, para los caracteres en inglés, la codificación UTF-8 y el código ASCII son iguales.

  • Para símbolos de n bytes (n> 1), los primeros n bits del primer byte se establecen todos en 1, el bit n + 1 se establece en 0 y los dos primeros bits de los siguientes bytes se establecen en 10. Los bits binarios restantes no mencionados son todos el código Unicode de este símbolo.

Rango de símbolo Unicode (hexadecimal) Método de codificación UTF-8 (binario)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

p.ej.

'王'La codificación Unicode es \u738b(0111 0011 1000 1011). Según la tabla anterior, se puede encontrar que 738bestá en el rango de la tercera línea (0000 0800-0000 FFFF), por lo que la codificación UTF-8 requiere tres bytes , es decir, el formato es 1110xxxx 10xxxxxx 10xxxxxx. Luego, comenzando desde el último bit binario, complete la x en el formato de atrás hacia adelante y agregue 0 a los bits adicionales. De esta manera, la codificación UTF-8 estricta es 11100100 10111000 10100101, y convertida a hexadecimal es E4B8A5.

Supongo que te gusta

Origin blog.csdn.net/Mculover666/article/details/108545825
Recomendado
Clasificación