测试环境win11+达梦2022年12月月度版管理工具+22年12月月度版服务端/22年5月月度版服务端
参考文章 如何配置达梦数据库使其支持GB18030-2022中文编码字符集
达梦数据库支持GB18030-2022中文编码字符集证明方法
小小测试一下GB18030-2022中文编码字符集在我的一些常用环境得支持情况
-
参照链接下载天珩字库 https://blog.csdn.net/fanghongxia2008/article/details/130192947?spm=1001.2014.3001.5501
-
配置管理工具启动参数
maganer.ini 中增加
-DDEFAULT_FONT_NAME=TH-Tshyn-P0
- 配置管理工具参数
4.展示效果图
整理下对比结果
20230824 增加下对比结果
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 union all
select id_code,''from dual union all
select osname,clnt_ver from v$sessions where sess_id = sessid;
xshell 查询结果 disql 执行结果 乱码内容显示方框
liunx 图形化界面中 达梦客户端查询结果 乱码内容显示为对应的字体中码编码位置
liunx 图形化界面中 disql 执行结果 乱码内容显示为对应的字体中码编码位置
win 图形化界面中 disql 执行结果 乱码内容显示方框
win 图形化界面中 disql 执行结果 乱码内容显示 ??
总结
从我的理解(防杠精保护) 说下达梦数据库系统展示字符的逻辑,达梦数据库本身应该是不存储字符对应的字体的,达梦数据库存储的是字符对应的编码。也就是应用层/展示层承担字符和编码的转换,在这个转换中失败则会造成乱码。因此在验证乱码的时候我们重点关注这个转换是否符合预期,然后是达梦数据库中存储的字符编码是否符合预期,如果这两点都满足的话,乱码的问题就会解决了
从我的理解(防杠精保护)说下达梦工具乱码的原因:
- disql 乱码 是因为 操作系统不支持展示对应的字体编码
- 管理工具乱码 是因为达梦管理工具使用的jdk 不支持对应的字体编码
如果想不乱码可以下载天珩字库