日期:2014-05-17  浏览次数:20891 次

读取表字段出现乱码,急~~~100分都给了
Movie表中有一个字段title表示Movie名字,类型是varchar2,这个字段可能是汉字(2字节)可能是字母(单字节),现在我把它读取出来并赋给一个char   s[100],然后打印s,但是结果所有的英文字母都能正确显示,但是汉字显示的是“?????”,怎么回事啊,高手帮帮忙~~~谢谢!

------解决方案--------------------
强行修改服务器端ORACLE当前字符集

---- 在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改:

SQL > ALTER DATABASE CHARACTER SET zhs16gbk;

ERROR at line 1:ORA-01031: insufficient privileges
---- 你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE数据库,在sql> 命令提示符下,运行select * from V$NLS_PARAMETERS,可以看到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正确显示。

详见:http://edu.yesky.com/edupxpt/185/2143685.shtml

------解决方案--------------------
你前端是什么开发环境,不用“char s[100]”,用“string”行不行?
------解决方案--------------------
這個不懂..學習下..
------解决方案--------------------
mantisXF(枫の叶)高手哦。
我这边是java,也会出问题。
和oracle没关系,是你前端程序的问题,要配置前端程序的字符集,设置为国标
------解决方案--------------------
你查一下数据库,如果里面是中文的展现成?号,那就是你前端程序的问题,必须在你应用程序服务的SERVER.XML文件中将字符集转换过来。如果存储在数据库中的是?号,那就是你数据库的字符集问题。一般数据库创建了是不能修改字符集,也可以强制修改。
------解决方案--------------------