使用oracleclient调用oracle存储过程返回结果集,其中中文为乱码

lingyu 2004-12-08 04:13:03
我的oracle数据库版本为8.06,字符集为US7ASCII,使用oracleclient调用时返回的结果集中中文为乱码,但用oledb调用sql语句时一切正常,但用oledb我不知如何给存储过程中的输出cursor参数赋值(在oracleclient中有OracleType.Cursor类型,但oledb中没有)
string s="测试";
// Convert the string into a byte[].
byte[] gbBytes = gb.GetBytes(s);//国标编码
string s1=ascii.GetString(gbBytes);//ASCII编码
我通过以上语句获得的s1就是返回结果中的乱码,请问如何从s1通过一系列编码获得本来的中文(如果oracleclient本身无法解决的话)
...全文
489 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingyu 2004-12-10
  • 打赏
  • 举报
回复
算了,结贴,郁闷中。。。
lingyu 2004-12-09
  • 打赏
  • 举报
回复
先谢过goody9807(),但oracle返回结果时已经把字节高位的1去掉了,我无法分辨原来是否有1
goody9807 2004-12-09
  • 打赏
  • 举报
回复
http://blog.csdn.net/goody9807/articles/138871.aspx
lingyu 2004-12-09
  • 打赏
  • 举报
回复
昨天晚上试了一下以下代码,其中s1为从数据库中取出的乱码,通过把所有字节的高位置1可以恢复原来的中文,但是如果数据库中内容是中英文混合就没哲了,因为不知道何时把高位置1
Encoding gb=Encoding.Default;
byte[] bt=gb.GetBytes(s1); //s1为oracleclient从数据库中取出乱码
for(int i=0;i<bt.Length;i++) bt[i]=(byte)(bt[i]|0x80);
return gb.GetString(bt)); //返回值为中文
希望高手前来指导
simonzone 2004-12-08
  • 打赏
  • 举报
回复
关注
jpusaddam 2004-12-08
  • 打赏
  • 举报
回复
帮顶
我也碰到了同样的问题!
lingyu 2004-12-08
  • 打赏
  • 举报
回复
lingyu 2004-12-08
  • 打赏
  • 举报
回复
请问用oledb如何调用返回cursor的存储过程?
lingyu 2004-12-08
  • 打赏
  • 举报
回复
web.config中设置的是国标
The123 2004-12-08
  • 打赏
  • 举报
回复
要么改数据库里的字符集。要么OLEDB。
The123 2004-12-08
  • 打赏
  • 举报
回复
要么改数据库里的字符集。要么OLEDB。


lingyu 2004-12-08
  • 打赏
  • 举报
回复
为了与服务器端字符集一致,注册表中为AMERICAN_AMERICA.US7ASCII,这样在sqlplus中就能够正常显示中文,否则为乱码,我在.net中用oledb访问就没有乱码情况
morefish 2004-12-08
  • 打赏
  • 举报
回复
你的版本是8i的装Oracle的注册表得改4处(好象是)。你看看你的数据库中是否也有中文乱码。
然后在Web.Config <system.web>节点中加入

<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

</system.web>
morefish 2004-12-08
  • 打赏
  • 举报
回复
你的Oracle码改了么?在注册表中的。
AMERICAN_AMERICA.WE8ISO8859P1
lingyu 2004-12-08
  • 打赏
  • 举报
回复
高手都不在线吗?急急!!!
jxzhang615 2004-12-08
  • 打赏
  • 举报
回复
帮顶!

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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