谁知道国标一级字库和二级字库的区别?谢谢
二者有无包含关系,或者点阵大小是否有区别。例如,我常看到一些设备说明上写包含国标二级字库,不知它们是否包含一级字库。另外,不知一二级字库的点阵有无区别?...
二者有无包含关系,或者点阵大小是否有区别。例如,我常看到一些设备说明上写包含国标二级字库,不知它们是否包含一级字库。另外,不知一二级字库的点阵有无区别?
展开
2016-08-30 · 知道合伙人教育行家
关注
展开全部
一级字库为常用字库,它以拼音字母为顺序,分为24个字母小区;二级字库为非常用字库,它为汉字偏傍部首为序,以需输入汉字的第一个拼音字母或部首来查找对应位置,然后再查找。
汉字的区位码标准是将汉字分为一级字库和二级字库,一级字库中汉字是按拼音顺序编码,是通常用的汉字,二级字库是不经常用的汉字,是按汉字的部首笔划顺序编码的。
对于一级字库(16区到55区),每个汉字拼音的字母的出现是有规律的,比如字母a开头的字只出现在第16区中的‘啊’与‘澳’之间,如果要查某个汉字的首字母,只要其区码和位码在‘啊’与‘澳’之间,就可判断它的首字母是a,如果它的区码不在一级字库中就是二级字库的汉字。
对于二级字库(56区到87区),要自己建两个数组,一个存放二级字库中的汉字,另一个存放对应于上面数组中每个汉字的拼音首字母,每个数组都是存放3008个数据,因为二级字库有3008个字符,一级字库有3775个汉字。要查某个二级字库中的汉字的首字母,就从数组中找出相同的汉字,然后从另一个数组中查出其首字母。最好数组中的汉字字母按照其在二级字库中的顺序存放,这样要查某个二级汉字的首字母只要根据二级汉字的区码和位码就可计算出其首字母在字母数组中的位置,这样也就不用建存放二级字库汉字的数组了。
汉字的区位码表示将字符分成87个区,每区94个字符(序号从1到94,这个序号称为位码)。
汉字的区号从16区开始,每个区的位码从1到94。
汉字的内码用两个字节。每个字节都是从160十进制(A0十六进制,10100000二进制)开始,也就是两个高位位1表示是内码。高字节对应区位码中的区码,低字节对应区位码中的位码。
由于低字节从10100000开始,这样一个区就只能表示95个字,又由于区位码中的位码是从1开始的,这样内码低字节表示位码是从10100001(161)开始,就只能表示94个字,这正对应区位码中的每区94个汉字。
一个汉字内码与区位码的关系是:
十进制
内码高字节=区码+160 内码低字节=位码+160
十六进制
内码高字节=区码+A0 内码低字节=位码+A0
由于汉字的区码是从16开始的,16+160=176,这样汉字的内码的高字节就是从176开始的,得到一个规律:
要判断一个字符是否是汉字的方法(对与Unicode字符,因为它是用两个字节表示一个字符,也是现在编程较常用的表示和存放字符的方法):
读出字符的高字节,将其转换位十进制,然后判断其是否大于等于(>=)176,如果是就表示它是汉字。
如果为了可靠,可以在判断完高字节后,再读出低字节,将其转换位十进制,然后判断其是否大于(>)160,如果是就表示它是汉字。
汉字的区位码标准是将汉字分为一级字库和二级字库,一级字库中汉字是按拼音顺序编码,是通常用的汉字,二级字库是不经常用的汉字,是按汉字的部首笔划顺序编码的。
对于一级字库(16区到55区),每个汉字拼音的字母的出现是有规律的,比如字母a开头的字只出现在第16区中的‘啊’与‘澳’之间,如果要查某个汉字的首字母,只要其区码和位码在‘啊’与‘澳’之间,就可判断它的首字母是a,如果它的区码不在一级字库中就是二级字库的汉字。
对于二级字库(56区到87区),要自己建两个数组,一个存放二级字库中的汉字,另一个存放对应于上面数组中每个汉字的拼音首字母,每个数组都是存放3008个数据,因为二级字库有3008个字符,一级字库有3775个汉字。要查某个二级字库中的汉字的首字母,就从数组中找出相同的汉字,然后从另一个数组中查出其首字母。最好数组中的汉字字母按照其在二级字库中的顺序存放,这样要查某个二级汉字的首字母只要根据二级汉字的区码和位码就可计算出其首字母在字母数组中的位置,这样也就不用建存放二级字库汉字的数组了。
汉字的区位码表示将字符分成87个区,每区94个字符(序号从1到94,这个序号称为位码)。
汉字的区号从16区开始,每个区的位码从1到94。
汉字的内码用两个字节。每个字节都是从160十进制(A0十六进制,10100000二进制)开始,也就是两个高位位1表示是内码。高字节对应区位码中的区码,低字节对应区位码中的位码。
由于低字节从10100000开始,这样一个区就只能表示95个字,又由于区位码中的位码是从1开始的,这样内码低字节表示位码是从10100001(161)开始,就只能表示94个字,这正对应区位码中的每区94个汉字。
一个汉字内码与区位码的关系是:
十进制
内码高字节=区码+160 内码低字节=位码+160
十六进制
内码高字节=区码+A0 内码低字节=位码+A0
由于汉字的区码是从16开始的,16+160=176,这样汉字的内码的高字节就是从176开始的,得到一个规律:
要判断一个字符是否是汉字的方法(对与Unicode字符,因为它是用两个字节表示一个字符,也是现在编程较常用的表示和存放字符的方法):
读出字符的高字节,将其转换位十进制,然后判断其是否大于等于(>=)176,如果是就表示它是汉字。
如果为了可靠,可以在判断完高字节后,再读出低字节,将其转换位十进制,然后判断其是否大于(>)160,如果是就表示它是汉字。
2020-04-08 · 百度认证:字体视界官方账号
关注
展开全部
一级字库是比较常用的,一般按照字母顺序,约有3775个汉字;二级字库是非常用汉字,一般按照偏旁部首编码,约有3008个字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
包含国标二级字库就肯定包含一级字库.在国标码中全部国标汉字与图形符号组成一个94*94的矩阵,矩阵的每一行叫一个"区",每一列叫一个"位".01~15区是图形符号区,16~55区是一级常用汉字区,共3755个,它们是按照汉语拼音排序的,56~87区是二级非常用汉字区,共3008个,它们是按照部首排序的,88~94区是自定义汉字区.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询