在NLS_LANG=WE8ISO8859P1,数据库字符集为UTF16的环境下用Oralce OLEDB操作汉字的朋友吗?

complayer 2002-12-13 08:55:20
我也不知是不是真的是Oracle的人说的,WE8ISO8859P1是中文ZHS16GBK的超集,所以我们的系统用这个字符集。以前数据库字符集是UTF8的,最近挪到IBM的小型机上,数据库字符集变成了UTF16,我们原来的程序就出了点问题。
用SQL Plus往数据库中插入中文,再读出读正常。甚至用微软的OLEDB也对,就是用Oracle的OLEDB乱码,我们要操作BLOB字段,微软的OLEDB只支持Long Raw,不支持BLOB。而Oracle的OLEDB可以操作BLOB字段,可就是出现乱码。查阅Oracle的文档,上面说最好用UTF8的字符集,否则可能出现信息丢失。我试过了很多种NLS_LANG,中文、西文各种各样的都试过,就是没有解决。
此外还有一件怪事就是用Recordset插数据不会乱码。我做过Trace,发现数据发到服务器端就已经变成了乱码,汉字“你好”到服务器端变成了“靠”。四个字节变成了两个字节。Oracle中,汉字乱码都会变成一堆“靠”,真是奇怪。
...全文
121 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghai 2002-12-13
  • 打赏
  • 举报
回复
搜索一下老的帖子好了,看看有没有
jiezhi 2002-12-13
  • 打赏
  • 举报
回复
老兄,勿发重复的帖子,很是浪费。大家都是比较热心的。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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