100分求解决oracle汉字乱码问题!!!

tahn30625 2009-08-25 01:39:03
100分求解决oracle汉字乱码问题!!!
症状:Oracle
服务器客户端编码相同为AMERICAN_AMERICA.WE8DEC
在Sqlplus中Select出来正常为汉字
用C#+MSPetshop的OraHelper显示出来为乱码
请大家帮忙诊治诊治,我已经郁闷得不行了 !!!

最好能提供源码,真是不胜感激呀!!! 在线等!!!
...全文
399 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mark620 2009-09-05
  • 打赏
  • 举报
回复
字符集是相同的么?
inthirties 2009-09-02
  • 打赏
  • 举报
回复
lz的问题解决了没有呀
chutao 2009-08-28
  • 打赏
  • 举报
回复
webconfig文件做以下配置
<globalization culture="zh-CN" requestEncoding="gb2312" responseEncoding="gb2312" uiCulture="zh-CN"/>
Oracle字符集:
SIMPLIFIED CHINESE_CHINA.ZHS16GB
双翅 2009-08-27
  • 打赏
  • 举报
回复
在数据库端添加系统变量ORA_NCHAR_LITERAL_REPLACE,值为True,具体操作如下:
我的电脑—右键—属性—高级—环境变量—系统变量,添加新变量ORA_NCHAR_LITERAL_REPLACE,值为True。

参考信息(强烈推荐):

http://blog.sina.com.cn/s/blog_503cbc890100b483.html~type=v5_one&label=rela_nextarticle

http://dev.tot.name/db/html/20090321/20090321222032.htm
liuyi8903 2009-08-26
  • 打赏
  • 举报
回复
c#本身的问题吧.我觉得.
zhangwonderful 2009-08-26
  • 打赏
  • 举报
回复
System.Text.Encoding.Convert() 用这个进行字符转换。

Encoding utf8=Encoding.UTF8;
Encoding gb2312=Encoding.GetEncoding("GB2312");
//转为utf-8格式
if (oldSort==1)
{
byte[] bgb=gb2312.GetBytes(oldCode);
byte[] butf=Encoding.Convert(gb2312,utf8,bgb);
string sutf8=utf8.GetString(butf);
return sutf8;
}
//转回gb2312
else
{
byte[] u=utf8.GetBytes(oldCode);
byte[] gb=Encoding.Convert(utf8,gb2312,u);
string sGb=gb2312.GetString(gb);
return sGb;
}
duqiangcise 2009-08-26
  • 打赏
  • 举报
回复
如果能够保证oracle数据库和客户端的字符集相同的话,那么问题可能出在c#上。
我以前也遇到过乱码问题,不过和你的情况不一样。我的是通过CRT连接数据库后,查询出来的带有中文的记录就出现乱码。不过把客户端的字符集和数据库的字符集设置一样就ok了
千骑卷平冈 2009-08-26
  • 打赏
  • 举报
回复
服务端和客户端编码相同,sqlplus自然会显示正常数据。

但如果编码不是GBK或GB2312或UTF-8,我们用程序从数据库中取出来的数据就会是乱码,一般是ISO-8859-1编码的数据。Java中用 new String(str.getBytes("ISO-8859-1"), "GBK") 将str先还原为ISO编码在转换为GBK编码,即可正常显示中文。

C#不熟,你应该清楚怎样转换。
doer_ljy 2009-08-26
  • 打赏
  • 举报
回复
C#的开发工具显示用的字符集与oracle的字符集不符。
建议修改C#
inthirties 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 tahn30625 的回复:]
100分求解决oracle汉字乱码问题!!!
症状:Oracle
  服务器客户端编码相同为AMERICAN_AMERICA.WE8DEC
  在Sqlplus中Select出来正常为汉字
  用C#+MSPetshop的OraHelper显示出来为乱码
  请大家帮忙诊治诊治,我已经郁闷得不行了 !!!

  最好能提供源码,真是不胜感激呀!!! 在线等!!!
[/Quote]

c#的是怎样调用数据库的,应该是C#这边的问题。
  • 打赏
  • 举报
回复
OraHelper
是不是用的
OracleClient?
如果是Oledb的话 好想有问题


最好的还是JAVA实现 UTF-8没的问题
tahn30625 2009-08-25
  • 打赏
  • 举报
回复
可就是不晓得怎么转呀 ?有人能帮帮我不 ?
majy 2009-08-25
  • 打赏
  • 举报
回复
你的OraHelper显示前转一下码啊,你的C#的默认的编码和oracle默认的不一致,那只能你自己进行手工编码了

tahn30625 2009-08-25
  • 打赏
  • 举报
回复
怎么没人回答呀 ?
CSDN的人都潜水了 ?

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧