我的oracle版本是11g,安装在linux上。客户是xp。
现在,通过PL/SQL查询数据和中文抓取;像这样(字段名称):
在 pl/sql 中执行命令:“select userenv('language') from dual;” 并显示
SIMPLIFIED CHINESE_CHINA.AL32UTF8(我认为是服务器端字符集)
于是我查看了Windows xp注册表:HKEY_LOCAL_MACHINE->SOFTWARE->Oracle->NLS_LANG。它显示:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK (我认为是客户端字符集)</p>
我把它改成
简体中文_CHINA.AL32UTF8
但是中文还是乱码。
而且,这个“NAME”字段实际上应该显示:“北京”。
我执行命令:
select dump(name,1016) from MN_C11_SM_S31 where objectid=1;
并显示:
这是否意味着存储的数据本身不正确?我应该怎么做?
补充:只是,我用C#代码通过UTF-8解析这个字符串:“e58c97e4baace5b882”。
并显示:“北京”。我认为这证明了数据本身并没有错。