既然是证明就要做到有图有真相。
证明途径1:系统概览法
查看达梦数据库“管理工具”->“对象导航”->“管理服务器”-“系统概览”->“字符集编码”->”GB18030”.
看见”GB18030”字样就是证据之一。如果你没有看见这个字样,而是UTF8等其他字样,请重新安装产品吧,安装向导时记得选择“GB18030”,再继续安装。
证明途径2:函数查询法
查看达梦数据库的手册->“DM8_SQL手册”->附录3“系统存储过程和函数”->“系统信息管理”->“9) SF_GET_UNICODE_FLAG/UNICODE ”
我们来执行一下试试,看这个系统函数返回多少呢?
看见”0”字样就是证据之一。如果你没有看见这个“0”结果值,而是1、2等其他数值,请重新安装产品吧,安装向导时记得选择“GB18030”,再继续安装。
证明途径3:国标对照测试法
有人说,上面只能证明支持GB18030,但是不知支持的时GB18030的2000版(第一版)、2005版(第二版)还是2022版(第三版),所以无法证明支持GB18030-2022?毕竟GB18030-2022共定义了8万多汉字,比2005版汉字多得多,不能证明其支持。
我下面拿国标来做个测试:
打开2022年8月发布的GB18030-2022《信息技术 中文编码字符集》文件,查看到关于汉字及汉字部首部分主要增加的部分集中在d)、e)、f)、g)、h)、i),共6个部分,这6个部分涉及的字符数量太多,有17886个,我们每个部分只做首尾的手工测试,全量测试则主要用脚本测。
手工测试方法:
select '0x82358F33' GB18030_code,bintochar('0x82358F33') GB18030_SYMBOLS union all select '0x82359636' GB18030_code,bintochar('0x82359636') GB18030_SYMBOLS union all select '0x9835F738' GB18030_code,bintochar('0x9835F738') GB18030_SYMBOLS union all select '0x98399E36' GB18030_code,bintochar('0x98399E36') GB18030_SYMBOLS union all select '0x98399F38' GB18030_code,bintochar('0x98399F38') GB18030_SYMBOLS union all select '0x9839B539' GB18030_code,bintochar('0x9839B539') GB18030_SYMBOLS |
select '0x9839B632' GB18030_code,bintochar('0x9839B632') GB18030_SYMBOLS union all select '0x9933FE33' GB18030_code,bintochar('0x9933FE33') GB18030_SYMBOLS union all select '0x99348138' GB18030_code,bintochar('0x99348138') GB18030_SYMBOLS union all select '0x9939F730' GB18030_code,bintochar('0x9939F730') GB18030_SYMBOLS union all select '0x81398B32' GB18030_code,bintochar('0x81398B32') GB18030_SYMBOLS union all select '0x8139A035' GB18030_code,bintochar('0x8139A035') GB18030_SYMBOLS; |
我们找到这些编码对应的页,查看其字形是否显示正确。
我们在国标GB18030-2022的page160页,找到了编码为“82358F33”的汉字字形,确实是“一个火加上一个常”,和标准上显示的汉字字形一样。
其他的字形相符性的证据,我就不一一截图供大家对比,大家去700多页的新版国标里找吧。
最新版国标新增的6个部分,通过上述验证,每个部分抽了2个字符进行测试,编码和字形是完全符合最新版国标要求的。达梦公司已通过脚本方式将1.7万个新增字符全部进行测试。
鉴于篇幅缘故,故不再此展示,有兴趣的同学可以自己动手试试。另外值得大家注意的是:
“首尾测试法”也好,“抽样测试法”也好,只要没有测试87887个全量字符,都不能算作支持,因为OS本身默认带的字库就比GB18030-2005版要求的字符要多且多得多,但是达不到GB18030-2022版要求,所以非全量测试都是不准确的,比如OS已经支持了CJK-A,CJK(共66个字符的一部分)、CJK-B、CJK-C、CJK-D;而GB18030-2005版要求的CJK-A,CJK-B,但是GB18030-2022版要求的是CJK-A,CJK(全部)、CJK-B、CJK-C、CJK-D、CJK-E、CJK-F.
达梦数据库如何正确配置使之支持GB18030-2022信息技术中文编码字符集,请看下个博客。
达梦数据库打开GB18030-2022编码的SQL文件时有乱码怎么处理,请看下个博客。