如何正确设置 Informix GLS 及 CSDK 语言环境
孙国荣, 软件工程师, IBM
简介: 本文介绍 GLS 相关知识,说明如何正确设置 Informix GLS 语言环境相关变量(DB_LOCALE,CLIENT_LOCALE),保证 Informix 数据库服务器、客户端能正确的支持中文字符和支持使用中文的对象名。说明在 CSDK 以上版本(当前最新版本为 CSDK )中对语言环境设置的要求。以及举例说明语言环境设置常见错误及解决办法
概述
IBM Informix 产品可以支持许多语言、文化和代码集。所有特定于文化的信息汇集于单个环境中,称为 Global Language Support (GLS)语言环境。除了 ASCII 美国英语之外,GLS 允许您在其他语言环境中工作并在 SQL 数据和标识中使用非 ASCII 字符。可以使用 GLS 功能来与特定语言环境定制保持一致。语言环境文件包括特定于文化的信息,如货币和日期格式以及整理顺序。
本文介绍 GLS 相关知识,说明如何正确设置 Informix GLS 语言环境相关变量(DB_LOCALE, CLIENT_LOCALE),保证 Informix 数据库服务器、客户端能正确的支持中文字符和支持使用中文的对象名。以及说明在 CSDK 以上版本(当前最新版本为 CSDK )中对语言环境设置的要求。
回页首
GLS 基本概念
字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集(简体中文)、BIG5字符集(繁体中文)、 GB18030字符集(亚洲字符集合)、Unicode( 常用 UTF-8) 字符集等。
Informix GLS 语言环境对常用的字符集进行了命名及内部编码(采用 16 进制编码)管理。通过服务器端的文件:$InformixDIR/gls/cm3/registry 查看 GLS 字符名称、编码对照表。示例如下:
字符集名称编码十六进制编码
8859-1 819 # 0x0333
gb 57357 # 0xe00d
GB2312-80 57357 # 0xe00d
utf8 57372 # 0xe01c
big5 57352 # 0xe008
GB18030-2000 5488 # 0x1570
GLS 环境中不同字符集名称可能对应同一个字符集编码,但一个字符集只能有一个编码,也就是说字符集编码才是唯一的。
GLS 环境中按照语言和地区把所支持的字符集分成不同的目录。$InformixDIR/gls/lc11/ 语言_ 地区/,如中文大陆地区的目录为:$InformixDIR/gls/lc11//,该目录下有如下两个文件: ,说明我们在设置字符集时,-2000 .gb .GB2312-80 三个不同的名称。这里(.gb -80 对应相同的字符集)。
GLS 环境中不同的字符集可以正确的进行转换,查看那些字符集可以正确转换的方法,查看目录$InformixDIR/gls/cv9 目录下的是否存在指定字符集互相转换的文件。如该目录下有文件 和 两个文件,表示 GLS 通过这两个转换文件支持 UTF-8 与 GB 之间的字符转换。
Informix 通过 DB_LOCALE 和 CLIENT_LOCALE 来设置数据库的语言本地化支持设置。DB_LOCALE 和 CLIENT_LOCALE 的值由四部分组成( 第 4 部分为可选),字符集不区分大小写。
1 2 3 4
< 语言>_< 国家和地区>.< 字符集名/ 字符集编码>[***@modifier]
举例说明:
CLIENT_LOCALE=-1
CLIENT_LOCALE=
# 以上两个为同一字符集:819 为 8859-1 的编码
DB_LOCALE=.gb
回页首
GLS 字符集工作原理
Informix 数据库服务器端、客户端字符集的工作原理示意图见图 1。
图 1. IDS GLS 字符集处理过程示意图
DB_LOCALE 环境变量用途
在客户机应用程序和数据库服务器交换字符数据时,如果 DB_LOCALE 环境变量(在客户机计算机上)的值与 CLIENT_LOCALE 的值不同,客户机应用程序
如何正确设置 Informix GLS 及 CSDK 语言环境 来自淘豆网m.daumloan.com转载请标明出处.