ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 全球化支持之字符集

全球化支持之字符集

原创 Linux操作系统 作者:大米嗵嗵 时间:2010-10-05 00:47:28 0 删除 编辑

字符集指的是对字符进行编码的方案,最早出现的字符编码方案是ASCII
字符集有分为:单字节字符集(如WE8ISO8859P1)
                            多字节字符集:固定长度的~,固定长度的字节数表示一个字符(在Oracle 10g中,支持固定长度的~只有1个:AF16UTF16)
                                                       变化长度的~,采用1到3个字节来表示一个字符(经常用于对亚洲语言的支持,常见的如:AHS16GBK、AL32UTF8)其中AL代表ALL,指适用于所有语言。
        数据库包含两个字符集:数据库字符集和国家字符集。主要使用数据库字符集,而国家字符集则是对数据库字符集的补充。在数据库中,有关数据库本身自带的PL/SQL程序包以及SQL语句等,都必须以能够兼容单字节的编码方式来存放。因此,如果数据库中需要使用固定长度的多字节字符集的话则不能兼容单字节的编码方式,也就不能够存放数据库本身自带的PL/SQL程序包以及SQL语句。因此为了能够支持固定长度的多字节的字符集,我们可以将该字符集指定为国家字符集。国家字符集只能在unicode编码中的UTF8和AF16UTF16中进行选择,默认为AF16UTF16。
        SQL>select * from nls_database_parameters;  进行查询数据库字符集和国家字符集
        NLS_CHARACTERSET代表数据库字符集
        NLS_NCHAR_CHARACTERSET代表国家字符集
*一般不更改数据库字符集,除非新的数据库字符集是当前数据库字符集的严格超集。(更改数据库字符集命令必须在mount阶段执行)
      在服务器端,有关语言、地区方面的信息则由初始化参数来配置,包括:
NLS_LANGUAGE、NLS_DATA_LANGUAGE(显示年月的语言)等等
      在客户端,通过设置环境变量NLS_LANG=_.
(Language对应服务器端的NLS_Territory,用来显示Oracle消息、年月的名称,Territory表示默认的日期、货币以及数字格式,Client Character Set指客户端使用的字符集)
NLS_LANG=American_America.ZHS16GBK用的最多。第二个America表示所在地区。
windows 下通过修改注册表来指定客户端的字符集信息。
 

    客户端字符集和服务器端字符集的转换问题(待续)

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24005010/viewspace-675447/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 闪回技术flashback
请登录后发表评论 登录
全部评论

注册时间:2010-07-31

  • 博文量
    75
  • 访问量
    157827