当前位置: 首页 > 网络应用技术

通常在单芯片机器GB2312,GBK汉字和字体库的位移地址计算上使用

时间:2023-03-06 21:20:19 网络应用技术

  当使用单个芯片微型计算机开发程序时,需要使用一些文本和数字显示一些文本和数字。由于配置不高,许多单词不需要显示很多文本或仅显示大小或修复几种类型的文本,或显示一些固定的文本或一些英文字母和数字。如果您只显示固定的文本,则可以直接将文本直接放在程序中的文本中,然后通过LCD屏幕上的数据将数据绘制在LCD屏幕上LCD屏幕绘图功能。如果您显示固定的尺寸文本,则可以制作一些行。本文介绍了常用的GB2312,GBK编码差异以及进行字体寻址的方法。

  GB2312总共包括7,445个图形字符,例如中文字符和符号,字母,日语化名,包括6,763个汉字。GB2312法规<对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示>,习惯了第一个字节<高字节>第二个字节是<低字节>EssenceGB2312-80包含第9区中最常用的第一,二级汉字和符号。此字符集是几乎所有中国系统和国际软件支持的汉字集,这也是最基本的中文字符集。它的编码范围为高0xa1-0xFe,低级别为0xa1-0xFe;中文字符以0xb0a1开头,以0xf7fe.gb2312结束,将代码表分为94个区域,对应于第一个字节(0xa1 -0xfe);每个区域的94位(0xa1-0xfe),与第二个字节相对应,两个字节的值是面积编号和两个字节的值和值和值。位数为32(20H),因此也是称为位置代码。01-09区域是符号和数字区域。16-87区域是中文区域(0xb0-0xf7)。10-15和88-94区域是需要进一步标准化的空白区域。GB2312将汉字分为两个级别:第一级是3755个常用的汉字,放置在1 6-55区域,并安排在中国拼音字母/笔形的命令;区域56-87,按照该部门的第一/中风顺序排列。

  因此,GB2312最多可以代表6,763个汉字。

  国家信息技术委员会于1995年12月1日“汉字的扩展”。GBK与GB2312完全兼容,并支持ISO 10646国际标准。它在前者的前过渡过程中起着向下的作用。gbk也用双字节表示。整体编码范围在8140-FEFE之间,第一个字节在81-FE之间,尾字节在40-FE之间,并且消除了XX7F线。

  GBK的总收入21,886个汉字和图形符号,包括:

  GB2312中的所有中文字符和非中国人物。

  Big5中的所有汉字。

  ISO 10646国家标准GB13000中的其他CJK汉字在上面有20902个汉字。

  还有984个其他汉字,头部和符号。

  GBK编码区分三个部分:

  GBK/2:OxboA1-F7FE,在GB2312中包括6763个汉字,以原始序列排列;

  GBK/3:OX8140-AOFE,6080 CJK汉字;

  GBK/4:OXAA40-FEAO,包括8160个汉字和添加的汉字。

  GBK/1:OXA1A1-A9FE,除了GB2312的符号外,还添加了其他符号

  GBK/5:OXA840-A9AO,扩展非中国性格区域。

  也就是说,GBK区域中的空白区域,用户可以自己定义字符

  每个GBK代码都由2个字节组成:

  第一个字节是0x81?0xfe

  第二个字节分为两个部分:

  2.0x80?0xfe。

  与GB2312相同的区域,这个词完全相同。

  我们称为第一个字节代表的含义,然后GBK中有126个地区(0xfe-0x81+1),并且

  每个区域中都有190个汉字(0xfe-0x80+0x7e-0x40+2),总共有126190 = 23940个中文字符。只要我们的点库从0x8140启动,根据此编码规则,它就建立了一个。一个。每个区域中的点矩阵的大小为190,每个汉字中使用的字节。这样,我们可以得到将汉字定位在此字体中的方法:

  当GBKL时<0X7F 时: Hp=((GBKH-0x81)190+GBKL-0X40) (size*2);

  当 GBKL>在0x80:hp =((GBKH-0x81)190+GBKL-0x41)(size*2);

  其中,GBKH和GBKL分别代表GBK的第一个字节和第二个字节(即高和低),大小

  表示汉字的大小(例如16个字体,12个字体等),而HP是字体中相应的汉字点数据的开始地址(假设它是从0存储的)。

  这样,只要我们获得了汉字的GBK代码,就可以显示此汉字。结果,在LCD上显示了汉字。

  简化公式:

  l是汉字的低字节,H是汉字的高字节。

  ADDR是字体中汉字的偏移。

  大小是汉字的肩部阵列占据的字节数。

  汉字的高字节大于0x80,是中文字符。高字节小于0x80是英语字符。

  字体库在闪存地址过程中:**

  首先,在闪光灯中获得汉字的存储偏置,然后在闪光灯中添加汉字的DOT矩阵的数据位置。

  获得绝对位置后,您可以读取一些矩阵代码并为显示积分。

  Big5编码

  BIG5是一种传统的单词编码方案。尽管存在一些缺陷,但它在计算机行业中广泛使用,尤其是在互联网中,因此成为事实上的行业标准。

  BIG5代码是双字节编码方案。第一个字节值是Oxao-Oxfe之间,第二个字节在OX40-OX7E中,并且

  OXA1-OXFE。

  BIG5包括13461个汉字和符号,包括:

  GB13000编码

  GB13000等于国际标准“ GM八位代码字符收集(UCS)” ISO10646.1,其等同于Unicode,代码页等的标准。

  从ASCII,GB2312,GBK到GB18030,这些编码方法是兼容的,也就是说,相同的字符在这些方案中总是具有相同的编码,后者的标准支持更多字符。在这些代码中,这些代码,英语和中文可以均匀处理。区分中文代码的方

  方法是,高字节的最高位不是0.按程序员,GB2312和GBK到GB18030的符号,属于双字节字符集(DBCS)。

  GB2312总共包括7,445个图形字符,例如中文字符,符号和字母,其中6763个中文字符为。GB2312规定“两个字节在任何图形字符中都表示,每个字节都以七个字体的编码表示。”它用于称第一个字节为“高字节”,即SO -call tare code。第二个字节为“低字节”,so称为bit code.gb2312-80包括最常用的第一个,第二个级别,汉字和第9区的符号。此字符集是几乎所有中文系统和国际软件支持的汉字集,这也是最基本的中文字符集。编码范围为高0xA1 ~0xFe,而低点级别为0xa1至0xFe;中文字符以0xb0a1开头,以0xf7fe.gb2312结束,将代码表分为94个区域,对应于第一个字节(0xa1~0xfe);每个区域的94位(0xa1 ~0xFe),与第二个字节相对应。两个字节的值是区域数值和位数和位数加32(20H),因此也称为位置代码。符号和数字区域。区域16至87是中文字符(0xB0 ~0xF7)。区域10 ~15和88-94是需要进一步标准化的空白区域。GB2312将汉字分为两个级别:第一级是3755个常用的汉字,放置在16-55区域,并按顺序排列中国拼音字母 /笔形的形状:第二个中文字符是3008个常用的汉字,以56 56 ~87放置在第一个 /笔触的顺序中。

  GBK内部代码与GB2312完全兼容,同时支持传统的汉字。总共有20,000多个汉字。编码格式如下。每个GBK代码由2个字节组成。第一个字节是0x81 ~0xfe。字节分为两个部分,一个是0x40 ~0x7e,另一个是0x80?0xfe。与gb2312相同的区域,单词完全相同。被称为该地区,然后总共有126个地区(0xfe?0x81+1),每个区域中有190个汉字(0xfe ~0x80+0x7e ~0x40+2)。有126x190 = 23940中文。只要DOT库根据该编码规则从0x8140开始,就可以一一建立。每个区域中的点矩阵的大小为190,每个汉字中使用的字节。这样,您可以获得将汉字定位在此字体中的方法:

  当GBKL时<0X7F 时:Hp=((GBKH-0x81)×190+GBKL-0X40)×(sizex2);

  当GBKL>在0x80:hp =((GBKH-0x81)×190+GBKL-0x41)×(sizex2);

  其中,GBKH和GBKLL代表了GBK的第一个字节和第二个字节(即高和低)。大小代表汉字的大小(例如16个字体,12个字体等),而HP是相应的汉字线。字体中数据的开始地址。

  对于GBK字体库和GB2312字体库,它们的解码零件略有不同。这种差异主要是由其编码方法引起的。对于GBK字体库,解码方法如下:

  对于GB2312字体库,解码方法如下:

  其中,QH和QL代表了GBK的第一个字节和第二个字节(即高和低)。大小表示汉字的大小(例如16个字体,12个字体等)。字体中数据的起始地址。

  注意:前面的第一个字符是一个空间。

  每个字符点代码占用的字节数为:(size/8+((size%8)?1:0))*(size/2),尺寸线:12/16/24 ...)

  将ASCII的拍摄保存在两个维数阵列中,以方便访问。

  原始:https://juejin.cn/post/7102634406963052558