失效链接处理 |
GBase8S支持中文生僻字注意事项 PDF 下载
本站整理下载:
提取码:rsab
相关截图:
主要内容:
将数据导入到GBase8s数据库中,我们会进行建库、建表、建字段的操作,当这些操作完成以后在初期导入一些测试或样例数据的时候都比较顺利。但有时到了正式环境,数据变多以后,里面藏着一些意向不到的特殊字符或生僻字会导致我们导入失败。所以以此文档记录在GBase8s建库过程中对生僻字处理的注意事项
关键的环境变量
DB_LOCALE
含义:
通过 DB_LOCALE 环境变量设置的数据库语言环境指定数据库服务器用于正确解释特定数据库中语言环境相关的数据类型(NCHAR 和 NVARCHAR)所需的语言、地域和代码集。DB_LOCALE 中指定的代码集确定哪些字符在任何字符列中都是有效的,并且确定数据库对象(如数据库、表、列和视图)的名称。数据库服务器使用 DB_LOCALE 环境变量指定的数据库代码集将数据传入和传出数据库。
用途:
1.在客户机应用程序和数据库服务器交换字符数据时,如果 DB_LOCALE 环境变量(在客户机计算机上)的值与 CLIENT_LOCALE 的值不同,客户机应用程序将执行代码集转换。 代码集转换防止这两种代码集不同时发生数据破坏。
2.在客户机应用程序请求连接时,它将包括 DB_LOCALE(如果已设置)的信息发送至数据库服务器。
3.在确定如何设置服务器处理语言环境的数据库信息时,数据库服务器使用 DB_LOCALE。
4.在客户机应用程序尝试打开数据库时,数据库服务器将客户机应用程序传递的 DB_LOCALE 环境变量的值与数据库中存储的数据库语言环境进行比较。
5.当数据库服务器存取与语言环境相关的数据类型的列时,数据库服务器使用 DB_LOCALE 指定的语言环境。
6.当数据库服务器创建新数据库时,它将检查数据库语言环境(DB_LOCALE),以确定如何在数据库的系统目录中存储字符信息。此信息包括诸如如何处理正则表达式、比较字符串以及确保代码集的正确使用的操作。
所以如果我们的数据库需要支持中文字符,我们必须在建库的时候必须将该变量设置为zh_CN.utf8或zh_cn.GB18030-2000。否则如果按照en_us.8859-1进行建库后,在插入中午字符后将会变成乱码。以下是字符集名称及编码对照表
字符集名称 编码
8859-1 819
gb 57357
GB2312-80 57357
utf8 57372
big5 57352
GB18030-2000 5488
字符集名称及编码对照表
GL_USEGLU
含义:
如果想使NCHAR 和 NVARCHAR数据类型的字段内的数据支持unicode,则必须对GL_USEGLU环境变量进行使用设置
所以如果我们的数据库不仅需要支持中文,还需要支持生僻字符,则必须在建库前开启此变量
实际操作
我们需要把生僻字“”插入到数据库中,根据刚才的描述我们需要正确设置两个地方才能保证“”字成功入库
我们首先使用echo $DB_LOCALE;命令查看当前该变量的值
发现当前该变量的值不是zh_CN.utf8或zh_cn.GB18030-2000
所以我们在建立数据库之前,需要先将变量进行修改
其次我们需要使用onstat -g env命令确认GL_USEGLU是否进行了设置
当这两个变量都设置完毕后,我们使用dbaccess建立数据库testdb3
|