问题一
安装OEL后,默认选择为中文,查看i18n文件,为LANG="zh_CN.UTF-8"格式
安装Oracle数据库,字符集选择为简体中文ZHS16GBK, 在安装之后,进行字符集查看字符集默认变成
AMERICAN_AMERICA.ZHS16GBK
操作数据库,发现插入中文,查询的时候变为了????
更改oracle用户下的.bash_profile文件,增加NLS_LANG="AMERICAN_AMERICA.ZHS16GBK",resource之后,发现???变为了中文。
问题二
在本机客户端连接数据库,进行查询,发现中文变为了乱码,同时,在客户端插入中文,在服务端查询时也为乱码或空白
检查客户端字符集,在注册表中查看NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
更改oracle用户下的.bash_profile文件,将AMERICAN_AMERICA.ZHS16GBK改为了SIMPLIFIED CHINESE_CHINA.ZHS16GBK,resource 之后,发现问题没有解决,反而在启动监听,数据库等操作中,出现了空白,没有之前的提示操作。
查询出为linux操作系统字符集导致,操作系统字符集为UTF-8格式,而数据库为GBK格式,二者不统一,顾将数据库中的ZHS16GBK改为 AL32UTF8,问题解决。客户端和服务端都正常。
问题三
项目决定字符集不能用UTF-8格式,要改为GBK格式,则将linux中的字符集改为了zh_CN.GBK格式,将数据库中的AL32UTF8改为了ZHS16GBK格式,重新resource之后,发现在linux系统中为乱码,在数据库中为乱码。进入服务器桌面操作,为中文正常。原来是CRT编码造成,更改CRT编码为GBK,中文字符集正常。
总结:
linux中安装Oracle,在字符集处要注意:
《1》操作系统与数据库字符集要统一,如果操作系统为UTF-8,则数据库为AL32UTF8,如果操作系统为GBK,则数据库为ZHS16GBK
《2》注意CRT软件针对此服务器的编码格式,要与系统和数据库统一
《3》SIMPLIFIED CHINESE_CHINA为简体中文,操作界面为中文,AMERICAN_AMERICA为英文,操作界面为英文,虽然加上后面的ZHS16GBK或AL32UTF8,可以支持中文,但是在操作属性上是不同的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28912313/viewspace-1672345/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28912313/viewspace-1672345/