我仅会点VB/VB.NET/VBA皮毛,研究了一周但对读出的中文字段乱码问题无法解决,恳请诸位帮助用我熟悉的VB系列语言将这个小小的DB数据正常读出来。(C#也可,只要木有语法错误,可以转成VB.NET,抑或知道转变关键流程的)
一、基本情况
1、该数据库我已经将不相关表删除;
2、该数据库应当是UTF8格式的,或者我判断错误。
3、通过SQLITE expert工具能打开数据库,用其UNICODE查看乱码,改用其ANSI正常显示了。
二、我的措施简介
1、试图通过VBA将表读到EXCEL中,结果ASCII码中的英文、数字等正常,汉字乱码;
通过注册SQLITE3.DLL读取数据库,用网上几个以API函数MULTIBYTETOWIDECHAR编写自定义函数解码,效果不行。但它们可以解码我测试用的字符串,证明其功能正常。
2、VB.net也读不出中文来,我用SQLITE.ADO.NET读取数据库,用ENCODING.UTF8或ENCODING.GETENCODING(中文代码页编码),都不行,用UTF8字符串测试也可解码成中文,但是从数据库中读来的字符串就是不行。囧死。
4 个解决方案
#1
ur_sys_dim中的DIM_NAME中的内容在SQLITE3.7。2中是乱码
#2
当然我的意思是所有中文字段都乱码
#3
SQLITE默认是UTF字符,估计写入SQLITE时已经乱码了
#4
这数据库是某一系统的一张表,同我在顶楼所说,该数据用SQLITE界面软件打开后说是UTF8,用哪个PARA什么命令,返回的编码也说是UTF8
#1
ur_sys_dim中的DIM_NAME中的内容在SQLITE3.7。2中是乱码
#2
当然我的意思是所有中文字段都乱码
#3
SQLITE默认是UTF字符,估计写入SQLITE时已经乱码了
#4
这数据库是某一系统的一张表,同我在顶楼所说,该数据用SQLITE界面软件打开后说是UTF8,用哪个PARA什么命令,返回的编码也说是UTF8