Oracle字符集的基本原理

66次阅读
没有评论

共计 1036 个字符,预计需要花费 3 分钟才能阅读完成。

本篇内容主要讲解“Oracle 字符集的基本原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Oracle 字符集的基本原理”吧!

一、三个概念:
1. Oracle 数据库服务器字符集:
 select * from v$nls_parameters where parameter= NLS_CHARACTERSET  
2. 客户端操作系统字符集:
/etc/sysconfig/i18n 设置

LANG= zh_CN.GB2312  (指定当前操作系统的字符集) 

SUPPORTED= zh_CN.GB2312 (指定当前操作系统支持的字符集) 

SYSFONT= lat0-sun16 (指定当前操作系统的字体) 

3. 客户端 NLS_LANG 参数:该参数用于向 Oracle 指示客户端操作系统的字符集。

二、Oracle 字符集转换的基本原则:

设置客户端的 NLS_LANG 为客户端操作系统的字符集

如果数据库字符集等于 NLS_LANG,数据库和客户端传输字符时不作任何转换

如果它们俩不等,则需要在不同字符集间转换,只有客户端操作系统字符集是数据库字符集子集的基础上才能正确转换,否则会出现乱码。

三、最佳实践
插入过程:
”中国“两字在客户端操作系统字符集 ZHS16GBK 中的编码是”d6,d0,b9,fa,由于 NLS_LANG 和数据库字符集不同,Oracle 会进行字符编码转换,也就是将字符集 ZHS16GBK 里“中国”的编码“d6,d0,b9,fa 转换为字符集 AL32UTF8 里”中国“的编码”e4,b8,ad,e5,9b,bd“。
读取过程:

数据库端读取的编码是”e4,b8,ad,e5,9b,bd“,由于 NLS_LANG 和数据库字符集不同,客户端对数据库端传过来的字符编码进行转换,数据库端字符集 AL32UTF8 里”中国“两字的编码”e4,b8,ad,e5,9b,bd“转换成客户端操作系统字符集 ZHS16GBK 里“中国”两字的编码“d6,d0,b9,fa,并正常显示。

经过了两次转换,都确实最正确、最推荐的方式。NLS_LANG 只和客户端操作系统的字符集相关,如果客户端操作系统的字符集和数据库字符集间无法正确转换,则应该首先改变客户端终端的字符集,而不是简单地把 NLS_LANG 设为和数据库字符集一样。

到此,相信大家对“Oracle 字符集的基本原理”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计1036字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)