结论:NLS_LANG客户端字符集的要与操作系统字符集配置一致
NLS_LANG客户端的字符集就是为了让数据库知道我们传递过去的字符是属于那种字符集,以便于oracle在存储字符时做相应的编码映射。
1.查看oracle数据库使用的字符集
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
2.查看客户端使用的字符集
[oracle@oracle11g ~]$ echo $NLS_LANG
AMERICAN_AMERICA.AL32UTF8
3.查看操作系统字符集
[oracle@oracle11g ~]$ echo $LANG
en_US.UTF-8
[oracle@oracle11g ~]$ locale charmap
UTF-8
所有字符集的转换,都是在Oracle数据库端进行的
Oracle会自动进行字符的转码