adodb查询oracle,字符串中的德文字符乱码

董松建 2017-10-19 04:17:29
oracle中有一个字段addr的值为 2100 GÖDÖLLŐ, Kőrösi Csoma
字段类型为 NVARCHAR2 (30) 类型的
DUMP(addr,1016) 返回值为 Typ=96 Len=6 CharacterSet=AL32UTF8: 74,24,6e,61,6d,63

vba使用adodb查询该字段

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
rs.Open "select addr from table", cn
将rs("addr")赋值给单元格,就显示乱码了:2100 G?D?LL?, K?r?si Csoma
但是我如果从toad里面直接复制粘贴到单元格里就能正常显示,也就是说excel是支持这些字符的。
要怎样处理才能让vba赋值的单元格显示正常呢?
...全文
527 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2017-10-20
  • 打赏
  • 举报
回复
应该是字符集的问题,字段oracle中是UTF8的(CharacterSet=AL32UTF8),可以有三个字节的字符,但是数据到了VB这里默认只是支持unicode,VB6的字符串变量也同样不支持UTF8(98年还没这个吧),所以,数据经过VB转一手以后UTF8的信息丢失了,再填到支持UTF8的应用里时其编码就已经不对了。
of123 2017-10-20
  • 打赏
  • 举报
回复
在德文系统的 Windows 下试试。
赵4老师 2017-10-19
  • 打赏
  • 举报
回复
字体设置问题? 字符编码问题? 控件不支持Unicode问题? 对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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