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 If
End Function
[解决办法]
sqlite论坛上有3个com类型的dll为什么不用,这个感觉很撮啊,虽然是绿色的
[解决办法]