服务器是ORACLE 9i 用企业管理器打开,里面的汉字都是乱码的,用powerbuilder打开可以正常看到汉字,客户端现在用VS.NET加载数据到DATAGRIDVIEW中,汉字还是乱码,都说是字符集的问题,服务器中的注册表的homeo中的NLS_LANG的键值是AMERICAN_AMERICA.WE8ISO8859P1,我客户端的也改成NLS_LANG的键值是AMERICAN_AMERICA.WE8ISO8859P1,为什么汉字还是显示乱码呢?
调试欢乐多
查看服务器使用的字符集
SELECT userenv('language') FROM dual;
然后将客户端修改为与服务器一致!
SQL> SELECT userenv('language') FROM dual;USERENV('LANGUAGE')
--------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
服务器也是这个啊
c:\>sqlplus /nolong
sql>connect .... 连接,指定用户名密码
sql>select * from 表; 这时候,看看是不是乱码2) 假如数据库中的不是乱码,说明是VS应用端的数据字符集问题,请将其修改成与数据库一致。
这里可能需要写一些转换的代码
------------------------------ ----------------------------------------
NLS_CHARACTERSET WE8ISO8859P1
NLS_NCHAR_CHARACTERSET AL16UTF16SQL> select userenv('language') from dual;USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
似乎LZ的客户端的字符集配置是正确的。
有没有可能是PB哪里作了一些显式的转换。
你用.net客户端插入一些中文数据看看,它如果显示正确,PB显示乱码,则基本上是PB里出现的问题了。