La Red de Conocimientos Pedagógicos - Conocimientos para el examen de postgrado - Introducción a las fuentes chinas, uso de fuentes GB2312

Introducción a las fuentes chinas, uso de fuentes GB2312

Codificación GB2312: el estándar nacional para la codificación de caracteres chinos simplificados publicado el 1 de mayo de 1981. GB2312 utiliza codificación de doble byte para caracteres chinos y contiene 7445 caracteres gráficos, incluidos 6763 caracteres chinos.

Codificación BIG5: conjunto de caracteres estándar del chino tradicional de Taiwán, que utiliza codificación de doble byte y contiene 13053 caracteres chinos, implementado en 1984.

Codificación GBK: el estándar nacional para la codificación de caracteres chinos lanzado en diciembre de 1995 es una expansión de la codificación GB2312 y utiliza codificación de doble byte para los caracteres chinos. El juego de caracteres GBK contiene un total de 21.003 caracteres chinos, incluidos todos los caracteres chinos, japoneses y coreanos del estándar nacional GB13000-1, y todos los caracteres chinos de la codificación BIG5.

Codificación GB18030: el estándar nacional para la codificación de caracteres chinos publicado el 17 de marzo de 2000 es una expansión de la codificación GBK, que cubre escrituras chinas, japonesas, coreanas y minoritarias chinas, incluidos 27.484 caracteres chinos. El juego de caracteres GB18030 utiliza tres métodos de byte único, byte doble y cuatro bytes para codificar caracteres. Compatible con juegos de caracteres GBK y GB2312.

Codificación Unicode: un conjunto de caracteres estándar internacional, que define una codificación única para cada carácter en varios idiomas del mundo para cumplir con la conversión de información de texto entre idiomas y plataformas.

La codificación GB2312 es el primer estándar nacional para la codificación de caracteres chinos. Fue publicado por la Administración Estatal de Estándares de China en 1980 y entró en uso el 1 de mayo de 1981. La codificación GB2312 contiene 6763 caracteres chinos, incluidos 3755 caracteres chinos de primer nivel y 3008 caracteres chinos de segundo nivel. Al mismo tiempo, la codificación GB2312 incluye 682 caracteres de ancho completo, incluidas letras latinas, letras griegas, letras japonesas hiragana y katakana y letras cirílicas rusas.

Representación de partición

La codificación GB2312 realiza un procesamiento de "partición" en los caracteres recopilados. Hay 94 áreas, cada área contiene 94 bits y 8836 puntos de código. Esta representación también se llama código de ubicación.

El área 01-09 contiene 682 caracteres excepto los caracteres chinos.

Las áreas 10-15 son áreas en blanco y no se utilizan.

Las áreas 16-55 contienen 3755 caracteres chinos de primer nivel, ordenados por pinyin.

Las áreas 56-87 contienen 3008 caracteres chinos de segundo nivel, ordenados por radical/trazo.

Las áreas 88-94 son áreas en blanco y no se utilizan.

Por ejemplo, la palabra "ah" es el primer carácter chino en la codificación GB2312. Se encuentra en la posición 01 del área 16, por lo que su código de área es 1601.

Codificación de doble byte

GB2312 estipula que cada carácter incluido está representado por dos bytes. El primer byte es el "byte alto", correspondiente a 94 áreas. "byte bajo", correspondiente a 94 bits. Entonces su rango de código de ubicación es: 0101-9494. El código de área y el número de bit más 0xA0 son la codificación GB2312. Por ejemplo, el último punto de código es 9494 y el código de área y el número de bit se convierten a hexadecimal 5E5E, 0x5E 0xA0 = 0xFE, por lo que la codificación GB2312 de este punto de código es FEFE.

Rango de codificación GB2312: A1A1-FEFE, donde el rango de codificación de caracteres chinos es B0A1-F7FE, el primer byte es 0xB0-0xF7 (correspondiente al código de área: 16-87), el segundo byte es 0xA1-0xFE (número de bit correspondiente: 01-94).

/zh/hanzi-gb2312-bianma.php (tabla de codificación GB2312)

/bianma/zifuji.php (convertido a utf8)

HZK12?' ¿16x12? ¿Enrejado de caracteres chinos Song-ti? Un carácter chino de 24 bytes

HZK16?'16x16? -ti ¿Enrejado de caracteres chinos? Un carácter chino de 32 bytes

HZK16F?'16x16?Matriz de puntos de caracteres chinos de canción tradicional?Un carácter chino de 32 bytes

HZK24F?'24x24?Impresión de caracteres chinos de canción de imitación ¿Matriz de puntos? ¿Un carácter chino de 72 bytes?

HZK24H? ¿Matriz de puntos de impresión de caracteres chinos en negrita? ¿Un carácter chino de 72 bytes?

HZK24K? ¿Matriz de puntos de impresión de caracteres chinos? Carácter chino 72Byte

HZK24S?'24x24? Song Ti Matriz de puntos de impresión de caracteres chinos ?Un carácter chino 72Byte

HZK24T?'24x24?Matriz de puntos de impresión de símbolos de estilo de canción?Un símbolo 72Byte

HZK40S?'40x40?Matriz de puntos de caracteres chinos de estilo de canción?Un carácter chino de 200 bytes

HZK40T?'40x40?Enrejado de símbolo de fuente de canción?Un símbolo de 200 bytes

HZK48S ?'48x48?Fuente de la canción ¿Enrejado de caracteres chinos?Un carácter chino 288Byte

HZK48T?'48x48?Símbolo de fuente de la canción Matriz de puntos Un símbolo 288Byte

La fuente HZK16 es un punto de 16×16. fuente matricial que cumple con el estándar GB2312

Los caracteres chinos de 16×16 en la fuente HZK16 requieren 256 puntos para mostrarse, lo que significa que se necesitan 32 bytes para mostrar un carácter chino normal.

Un carácter chino ocupa dos bytes. El primer byte es el código de área del carácter chino y el último byte es el número de bit del carácter. Entre ellos, cada área registra 94 caracteres chinos y el número de bit es la posición del carácter en el área. Por lo tanto, para encontrar la ubicación de un carácter chino en la biblioteca hzk16, debe obtener su código de área y código de bits.

Código de área: el primer byte de caracteres chinos: 0xA0 (debido a que la codificación de caracteres chinos comienza desde el área 0xA0, el frente del archivo comienza desde el área 0xA0 y es necesario calcular el código de área relativo )

Código de bits: el segundo byte de los caracteres chinos - 0xA0

De esta manera, podemos obtener la posición de desplazamiento absoluta de los caracteres chinos en HZK16:

offset=(94*( Código de área-1) (código de bits-1))*32

Nota:

El código de área se reduce en 1 porque la matriz comienza con 0 y el código de área comienza con 1 El comienzo

(94*(código de área-1) número de bit-1) es el número de bytes ocupados por una fuente de caracteres chinos

La última multiplicación por 32 es porque el texto de la biblioteca de caracteres chinos debe comenzar desde esta posición. Los 32 bytes de información registran la información de fuente de la palabra (mencionado anteriormente que un carácter chino necesita 32 bytes para mostrarse)

Si tiene UCDOS HZK24S (estilo canción), HZK24K (estilo cursiva) o HZK24H (negrita), también puede utilizar fuentes grandes en diferentes fuentes para caracteres chinos. La serie HZK24 es una fuente de matriz de puntos de 24*24 y cada fuente ocupa 3*24 bytes. Si sigues el método de visualización de HZK16, verás... jeje, las palabras están escritas. Esto se debe a que este tipo de biblioteca de fuentes es diferente de las bibliotecas de caracteres chinos comunes. Este tipo de biblioteca de caracteres chinos de fuentes grandes es una biblioteca de fuentes de impresión especialmente diseñada para facilitar la impresión. Para ello, solo necesita rotar la información de bits de las fuentes vertical y horizontalmente. Simplemente configure la visualización.

Por ejemplo, si lo define como mat[24][3], debería generarse así:

for(i=0; ilt; 24; i)

for(i=0; ilt; 24; i)

for (j=0; jlt ;24;j)

if((0x80gt;gt;i8)amp;mat[j][i/8]) /*Transponer visualización*/

putpixel(j x , y i, color);

También existe un tipo de fuente HZK12. Aunque es un tipo de fuente estándar, si calcula su fuente como 12*12 bits, no lo será. capaz de mostrar caracteres chinos normalmente. Porque para facilitar el uso, el diseñador de fuentes ha agregado el número de dígitos en cada línea de la fuente a un múltiplo entero de 8, por lo que la longitud real de bits de la fuente es 16 * 12, aunque hay 4 dígitos más en cada una. línea, estos 4 Los bits son todos 0 (sin visualización), lo que no afecta el efecto de visualización.