plsql里insert进去的中文字符,在服务端select * from 表名; 时显示乱码的问题
[root@ ~]# echo $LANG
zh_CN.utf8
系统中的utf8字符集
[oracle@~]$ echo $NLS_LANG
AMERICAN_AMERICA.UTF8
oracle服务端的字符集
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
这个是sqlplus里显示的字符集
好了,问题在这里,我们要的是用眼可以看到的中文字符不是乱码,所以只要保证NLS_LANG的值 是UTF8字符集就可以了
如果 是进行数据库里的表导出到其它服务器时产生的乱码 问题 则要保证服务端和客户端或者服务端和目的服务端的都是相同字符集就可以了,比如这里的AMERICAN_AMERICA.ZHS16GBK (好像是oracle默认的)
备注: AMERICAN_AMERICA.ZHS16GBK //AMERICAN(是语言).AMERICA(是相关地域的一些数字日期的格式).ZHS16GBK(这个才是字符集)