项目中遇到的问题:

PHP如何读取汉字点阵数据如果你想输入一个文本,你可以得到文本的所有点阵。

uff1a解

简体中文国家标准库有7445个汉字,其中6773个汉字,3755个一级汉字,3008个两个汉字,一个2字节(16位二进制)代码。

区位码:国家标准GB2312规定所有的汉字和符号组成一个94×94矩阵,在这个矩阵,每一行称为一个区域。每个列被称为位。因此,广场其实是中文字符集94地区(地区代码01至94)和各地区的94位(01位至94位),区号和位号仅仅是一个汉字组合成汉字的区位码,汉字的位置代码,两位地区代码,和较低的两位是一位数字。可以看出,区位码对应的汉字或符号之一。

编码:编码是指汉字在计算机汉字编码表示。机器代码和区号略有不同。目前,对国内大多数计算机系统中,一个汉字的编码是两个字节,称为高字节和低字节,和两个字节的位置编码之间的关系是如下:+ A0H(H =高码表示十六进制码+ A0H代码=低)例如,汉字的位置。该代码是1601,b0h是高字节码,字节码为A1H低。

返回0和1的字符串。




< PHP

*读取中文点阵数据
*
* /

$str =中华人民共和国;

font_file_name美元=simsun12。丰; / /点阵字体文件名
font_width美元= 12; / /字宽
font_height美元= 12; / /字高
start_offset美元= 0; / /偏移

$ FP = fopen(font_file_name美元,rb);

offset_size美元美元美元= font_width * font_height / 8;
string_size美元美元美元font_height font_width * =;
= $ dot_string ;

为($我= 0;$i < strlen(str);$我+ +)
{
如果(ORD($str {我})> 160)
{
询问区域代码,然后在二维表中计算其位置代码,然后在文件中画出字符、偏移量。
为抵消=((ORD($str {我})- 0xA1)* 94 + ORD($str { $我+ 1 })- 0xA1)* $ offset_size;
美元+;
}
其他的
{
为抵消=(ORD($str {我})+ 156-1)* $ offset_size;
}

读取晶格数据
fseek(fp美元,美元美元start_offset +偏移,seek_set);
bindot美元= fread($ FP,offset_size美元);

(J = 0;对美元美元美元,<< offset_size;j++)
{
将二进制点阵数据转换成字符串
dot_string美元= sprintf(% 08b
}
}

Fclose($ FP);

echo $ dot_string;
>



以上是本文的全部内容,希望大家能喜欢。