各位大师请帮帮忙 。小弟在这感激不尽
linux 下的 oracle10g 
向数据库一个表中添加汉字数据 
插入sql :insert into c_menu (C_CODE, C_NAME, C_URL, C_LEVEL, C_NOTE)
values ('001', '货源管理', '', 1, '');
查询的时候出现的乱码 
001   ????    
  
还有就是 我在
查看Oracel服务器端的字符集:
select userenv('language') from dual;
我的结果是:
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1怎么解决? 
注意:是linux下!! 1.jpg (13.49 KB)
2009-5-27 10:39

解决方案 »

  1.   

    select userenv('language') from dual; 
    这个语句看得是你OS的环境变量值。操作:
    export NLS_LANG="SIMPLIFIED CHINESE_CHINA".AL32UTF8还有你数据库的字符集是什么?
      

  2.   

    环境变量字符集用来告诉 数据库,我提供的文本是“XX字符集”编码的
    如果你的文本是 GBK的,而且环境变量是 GBK,数据库字符集也是GBK,那么一切顺利,不会有乱码
    如果你的文本是 UTF-8的,且环境变量也是UTF-8的,那么也没有问题,oracle会转换成GBK
    ,如果你的文本是UTF-8的,但是环境变量是GBK,也就是你明明是UTF-8,却告诉了 Oracle数据库,“我是GBK",撒谎了于是oacle会相信你,并且认为你的文本的字符集和数据库字符集是一样的,无需转换,此时就出现乱码了