VB使用SQLite数据库读取中文乱码
网上下载了一个VB使用SQLite数据库的实例,测试中发现以下问题:
1.不支持BLOB型数据读写;
2.中文读取乱码。实例提供了Unicode到UTF-8的编码函数,但没有UTF-8到Unicode的解码函数,所以存入中文经测试没有问题,但读取时出现乱码(全英文不出现问题)。
我把资源放到这个地址http://download.csdn.net/source/2881540
希望高手们帮忙解决一下。谢谢了!
[解决办法]
這個問我解決了,
// mSqlite.sqlite3_exec(f_lSqlite, "INSERT INTO data (Age , Name) VALUES (23, '中國人12') ") = SQLITE_OK
修改如下程序:
Public Function sqlite3_exec(ByVal sqlite3 As Long, ByVal zSql As String) As Long 'int sqlite3_exec( ' sqlite3*, /* An open database */ ' const char *sql, /* SQL to be evaluated */ ' int (*callback)(void*,int,char**,char**), /* Callback function */ ' void *, /* 1st argument to callback */ ' char **errmsg /* Error msg written here */ '); Dim bvData() As Byte Dim lSize As Long Dim lRet As Long If LenB(zSql) Then lSize = Len(zSql) * 4 ReDim bvData(lSize) lRet = WideCharToMultiByte(CP_UTF8, 0, StrPtr(zSql), Len(zSql), bvData(0), lSize + 1, vbNullString, 0) If lRet Then ReDim Preserve bvData(lRet - 1) End If End If If m_bLoaded Then With m_cCDECL sqlite3_exec = .CallFunc("sqlite3_exec", sqlite3, VarPtr(bvData(0)), 0, 0, 0) End With Else sqlite3_exec = SQLITE_ERROR End IfEnd Function
[解决办法]
实在不行就转换为字符串来用好了,比如二进制转为base64字符串,都是很成熟的东西
[解决办法]
sqlite论坛上有3个com类型的dll为什么不用,这个感觉很撮啊,虽然是绿色的
[解决办法]