#程序读us7ascii字符集数据库,返回结果中文变成乱码的问题

mars_guoting 2009-12-26 04:29:35
1.oracle us7ascii字符集 能不能存储中文?

2.为什么我的注册表里面改后 pl/sql 显示中文还是乱码

3.c# 程序中间怎么处理? 远程数据库是 us7ascii


...全文
803 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazylaa 2009-12-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mars_guoting 的回复:]
我现在就是不知道  oracle  us7ascii 编码 在net 对应的 编码 是多少  ?在网上也没有查到啊

头痛中。。。。。。
[/Quote]
看看下面两个链接:
http://blog.csdn.net/cslie/archive/2008/03/12/2172046.aspx
http://blogs.msdn.com/tomleetaiwan/archive/2007/12/19/net-managed-provider-for-oracle-us7ascii.aspx
mars_guoting 2009-12-26
  • 打赏
  • 举报
回复
我现在就是不知道 oracle us7ascii 编码 在net 对应的 编码 是多少 ?在网上也没有查到啊

头痛中。。。。。。
mars_guoting 2009-12-26
  • 打赏
  • 举报
回复
能不能给点思路啊

public static string Changvar(string s)
{
return Encoding.Default.GetString(Encoding.GetEncoding("GB2312").GetBytes(s));
}

还是乱码呀

crazylaa 2009-12-26
  • 打赏
  • 举报
回复
c#。。。不会啊。
mars_guoting 2009-12-26
  • 打赏
  • 举报
回复

您给的那个页面 我已经看了 谢谢 但是 us7ascii 编码 在 c# 程序中间怎么转换呢? 能否给点代码看看呀
crazylaa 2009-12-26
  • 打赏
  • 举报
回复
ascii单字节,中文双字节or3字节,貌似需要程序转码。而且存进去的中文直接是显示不了的。楼主可参考:
http://www.itpub.net/thread-185185-1-1.html
mars_guoting 2009-12-26
  • 打赏
  • 举报
回复
都没有人 看看啊
由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并用US7ASCII字符集存储了中文,或是有的用户在创建数据库时,不考虑清楚,随意选择一个默认的字符集,如WE8ISO8859P1或US7ASCII,而这两个字符集都没有汉字编码,虽然有些时候选用这种字符集好象也能正常使用,但用这种字符集存储汉字信息从原则上说就是错误的,它会给数据库的使用与维护带来一系列的麻烦。正常情况下,要将汉字存入数据库数据库字符集必须支持中文,而将数据库字符集设置为US7ASCII等单字节字符集是不合适的。US7ASCII字符集只定义了128个符号,并不支持汉字。另外,如果在SQL*PLUS中能够输入中文,操作系统缺省应该是支持中文的,但如果在NLS_LANG中的字符集设置为US7ASCII,显然也是不正确的,它没有反映客户端的实际情况。但在实际应用中汉字显示却是正确的,这主要是因为Oracle检查数据库与客户端的字符集设置是同样的,那么数据在客户与数据库之间的存取过程中将不发生任何转换,但是这实际上导致了数据库标识的字符集与实际存入的内容是不相符的。而在SELECT的过程中,Oracle同样检查发现数据库与客户端的字符集设置是相同的,所以它也将存入的内容原封不动地传送到客户端,而客户端操作系统识别出这是汉字编码所以能够正确显示。

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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