暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LightDB23.3新特性LightDB全面支持GB18030字符集

原创 姚崇 2023-08-27
496

Postgresql原生不支持GBK和GB18030编码,信创数据库必须支持GBK,人行认证要求必须支持GB18030 2022,相应的LightDB从23.3开始支持人行认证要求必须支持GB18030 2022

  1. oracle ZHS16GBK编码的VARCHAR2能够直接迁移到lightdb GBK编码VARCHAR,长度不会超,且字符无丢失、无乱码
  2. oracle AL32UTF8编码的VARCHAR2能够直接迁移到lightdb UTF8编码VARCHAR,长度不会超,且字符无丢失、无乱码
  3. 能够通过dbeaver/ltsql保存GB18030生僻字到数据库,通过16进制编辑器查看数据文件,确定存储的是生僻字
  4. 能够通过dbeaver/ltsql查询出来,并显示(客户端比服务端宽的情况下)

1、创建编码为GBK的数据库

create database gbktest encoding='gbk' locale='zh_CN.gbk' template template0;

2、建表并插入数据

create table t1(name text);

插入GBK支持但是GB2312不支持的字符;

╫ A86F;狜 AA40;丂 8140;璻 AD72;鵂 F8A0;
insert into t1 values(e'\U0000256B');
insert into t1 values(e'\U000072DC');
insert into t1 values(e'\U00004E02');
insert into t1 values(e'\U000074BB');
insert into t1 values(e'\U00009D42');

3、创建编码为GB18030的数据库

create database gb18030test encoding='gb18030' locale='zh_CN.gb18030' template template0;

4、建表并插入数据

create table t1(name text);

5、插入GB18030支持但是GBK不支持的字符

(9839A030, 𫝂),(9839B633, 𫠡)(9839B634, 𫠢),(9937D833, 𮃕)(9937D834, 𮃖)
insert into t1 values(e'\U0002B742');
insert into t1 values(e'\U0002B821');
insert into t1 values(e'\U0002B822');
insert into t1 values(e'\U0002E0D5');
insert into t1 values(e'\U0002E0D6');

6、查看相应数据库和表的数据文件中储存的数据是否是GBK编码和GB18030编码

参考链接:
https://zh.wikipedia.org/wiki/GB_18030

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论