数据库字符集

 UTF8 and AL32UTF8 是不同的:

 

UTF8 stores Unicode characters with code points > U+FFFF as two surrogate characters, three bytes each

一个汉字三个字节

AL32UTF8 stores Unicode characters with code points > U+FFFF as one four-byte character

一个汉字四个字节

UTF8 是在9i之前的版本使用的字符集,AL32UTF8是9i和10g字符集。

 

        如果要连接9i以前的版本可以使用客户端为UTF8字符集,如果9i和10g,用AL32UTF8字符集或者

 

US7ASCII-----oracle内只支持英文字符集。

 

ZHS16GBK----中文字符集

 

AL32UTF8和UTF8----支持多国语言

 

环境变量设置:NLS_LANG(windows在注册表中搜索找到,linux在/etc/sysconfig/i18n)

 

显示数据库字符集命令:select * from NLS_DATABASE_PARAMETERS

 

 

前面答得很详细了,我来概括如下:
1、语言跟字符集无关,你只需关注 nls_lang 变量中.号后面的内容;
2、服务器端的字符集常规途径是改不了的;
3、客户端调用时所在会话的 nls_lang 应与操作系统的内码一致,比如 Windows,在命令行使用 chcp 命令可查看当前会话的内码,各版本的默认内码可在这查 http://msdn.microsoft.com/en-us/goglobal/cc563921.aspx
4、US7ASCII 可以保存中文吗?(Oracle 的字符集命名太他妈混乱了,不跟 ISO 标准,按理说 ASCII 中每个字符只有 7 bit,是无法表示中文的)
5、如果以前是正常的,应该是改对 B 的 nls_lang 就行的;
6、数据库有两个版本,应该使用高版本的客户端,本例即 10g,整个 9i 的夹着徒增混乱。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值