oracle-编码

来源:互联网 发布:linux man help 编辑:程序博客网 时间:2024/06/03 22:40
1、Oracle数据库服务器字符集:即Oracle以哪种字符编码存储字符,可以通过以下语句查出数据库字符集的设置
    select *from nls_database_parameters
2、客户端操作系统字符集:即客户端操作系统以哪种字符编码存储字符。
    如果是Windows,可以使用chcp命令获得代码页(code page):
    linux :查看字符集
    1 echo $LANG 2  env |grep LANG 3 export |grep LANG 4  locale
    Linux :字符集设置 字符集在/etc/sysconfig/i18n设置:
    LANG="zh_CN.GB2312" (指定当前操作系统的字符集) 
    SUPPORTED="zh_CN.GB2312"(指定当前操作系统支持的字符集) 
    SYSFONT="lat0-sun16"(指定当前操作系统的字体)
3、客户端NLS_LANG参数:该参数用于向Oracle指示客户端操作系统的字符集


Oracle字符集转换的基本原则:
1.设置客户端的NLS_LANG为客户端操作系统的字符集
2.如果数据库字符集等于NLS_LANG,数据库和客户端传输字符时不作任何转换
3.如果它们俩不等,则需要在不同字符集间转换,只有客户端操作系统字符集是数据库字符集子集的基础上才能正确转换,否则会出现乱码。


NLS_LANG只和客户端操作系统的字符集相关。
如果客户端操作系统的字符集和数据库字符集间无法正确转换,则应该首先改变客户端终端的字符集。
而不是简单地把NLS_LANG设为和数据库字符集一样。




附: plsql工具  tools->preferences->option 选择 Unicode  enable 采用unicode 编码  不受字符集影响。能照常显示。


oracle 查看数据存储的编码和内容
SELECT DUMP(xxx,1016) from table;