个人对GB18030-2022和Adobe-GB1-6在字体制作上的理解
今天我才发现GB18030已经于8月1日开始实行2022版新国标了,而且是由之前的推荐性标准改为了强制标准,这让我想起我之前做过的字体Acy-Font已经不符合标准了。
根据我对GB18030新标准中三个实现级别的理解,从今往后所有要支持简体中文显示的字体都需要符合第一级别(大约28574个字符),即使是艺术字体也是如此,像我之前那样抱着自己随便做着玩的心态支持一下GB2312字符集糊弄一下得了肯定是不行了,否则均会被视为不标准、不符合规范的字体,这也大大提高了个人字体作者的制作难度。
我之前为了省事不做上万那么多的字符查了些资料,发现了Adobe-GB1的规范,这个规范分了较多的级别,也方便了字体制作者根据能力去实现相应不同的级别,比如我只想做GB2312字符集,那我只需实现Adobe-GB1-0就行了,这样只用做7717个字符。而如今若要符合GB18030标准需要至少支持到Adobe-GB1-4(覆盖CJK扩展A区),要符合第二级别则需要支持全部Supplement,但这里面比较令人疑惑的是Supplement5又包含了三个级别之外的彝语文字(非汉字文种属于选择性支持),这不得不令我怀疑Adobe的这个Supplement5~6的CID表设计得是否合理,以后如果再做字体还是不要用Adobe的CID表了吧。
GB18030的三个实现级别
实现级别1(任何硬件或软件必须支持的级别)
需要支持到CJK扩展A区,总计28574个字符(含96个单字节字符,21882个双字节字符,6596个四字节字符)
实现级别2
在级别1的基础上还要支持《通用规范汉字表》中的字符
实现级别3
在级别2的基础上还要支持全部汉字及康熙部首(注意非汉字文种在级别1中规定了是选择性支持),总计89105个字符(康熙部首+扩展B~F区共60531个字符)
Adobe-GB1
Adobe-GB1-4
实现GB18030第1级别的最低选择,共29064个字符
Adobe-GB1-6
实现GB18030第2级别的最低选择,共30572个字符,其中包含规定外的彝语字符,因此不建议使用
相关链接:
Acy-Font:https://github.com/lxfly2000/Acy-Font
GB18030:https://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=A1931A578FE14957104988029B0833D3
Adobe-GB1:https://github.com/adobe-type-tools/Adobe-GB1