用SQL Plus往数据库中插入中文,再读出读正常。甚至用微软的OLEDB也对,就是用Oracle的OLEDB乱码,我们要操作BLOB字段,微软的OLEDB只支持Long Raw,不支持BLOB。而Oracle的OLEDB可以操作BLOB字段,可就是出现乱码。查阅Oracle的文档,上面说最好用UTF8的字符集,否则可能出现信息丢失。我试过了很多种NLS_LANG,中文、西文各种各样的都试过,就是没有解决。
此外还有一件怪事就是用Recordset插数据不会乱码。我做过Trace,发现数据发到服务器端就已经变成了乱码,汉字“你好”到服务器端变成了“靠”。四个字节变成了两个字节。Oracle中,汉字乱码都会变成一堆“靠”,真是奇怪。