oracle 字符集总结(超出GBK范围的字符存取问题未解决)

本文详细介绍了Oracle数据库的字符集概念,包括服务器字符集、操作系统字符集和客户端字符集的设置。重点讨论了在GBK字符集下无法存储超出范围的字符问题,并对比了AL32UTF8和UTF8字符集的差异。通过实验展示了不同字符集配置下数据的存储和查询情况,目前尚未找到解决方案来正确存储并查询超出GBK范围的字符。
摘要由CSDN通过智能技术生成

字符集总结:
一、服务器的字符集(用来存储数据用的编码格式)
二、操作系统字符集(用来显示、解码/编码与oracle交互的编码格式)
三、oracle客户端字符集(用于转换操作系统、服务器端编码/解码格式问题)

 

后续在使用过程中领悟到:
最基础层是 数据库(创建库时的字符集)
第二层是:操作系统
第三层是:终端显示

保持三层为 相同字符集 既可,但要注意的是,必须以创建数据库时所使用的 字符集 为基准,进行设置 操作系统 、 终端的字符集,就基本没有问题;

 

引用一段话:

字符集,实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。Oracle数据库最早支持的编码方案是US7ASCII。Oracle的字符集命名遵循以下命名规则:<Language><bitsize><encoding>   即:  <语言><比特位数><编码> 。比如: AL32UTF8表示:AL,代表all,指使用所有语言;32,,32位;UTF8编码。查看环境变量发现:NLS_LANG=American_America.AL32UTF8,American表示语言;America表示地区;AL32UTF8字符集类型。

         AL32UTF8和UTF8有什么区别呢?Oracle的UTF8字符集由来已久,至少在8的时候就已经存在了,而对应的是UNICODE 3.0。而AL32UTF8字符集是9i才出现的,其对应的是UNICODE 5.0。这两种字符集的区别在于,UNICODE 5.0与3.0相比,又增加了一些新的补充字符。但是在实际当中,使用到这些新增字符的可能性非常小,因此绝大部分情况下,选择UTF8也是足够的。AL32UTF8字符集是9i才出现的,那么对于9i以后的版本访问没有任何问题,但是对于8i及以前的版本,则不认识这个字符集。这就使得8i及更低版本的客户端在访问9i以上AL32UTF8的数据库时,会碰到各种各样的问题。因此

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值