nmgwddj 发表于 2011-1-31 17:12:10

sqlite如何用ANSI这种编码格式读取sqlite数据库?(已解决)

本帖最后由 nmgwddj 于 2011-2-4 18:38 编辑

如题,默认的读取中文都是乱码。。

十分抱歉,题目弄出错别字了。



已经解决。感谢bing614Func SQLiteRead()
        ;_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
        _SQLite_Open($SQLite_Data_Path)
        _SQLite_Query(-1, "SELECT * FROM tbl_Package ORDER BY pkgid DESC;", $hQuery)
        While _SQLite_FetchData($hQuery, $aRow, $fBinary = False) = $SQLITE_OK
                $bts = BinaryToString($aRow, 1)
                GUICtrlCreateListViewItem($aRow & '|' & $bts & '|' & $aRow & '|' & $aRow, $ListView1)
        WEnd
        _SQLite_Close()
EndFunc   ;==>SQLiteRead

qqmmcc 发表于 2011-1-31 21:57:46

不清楚,帮你顶一下

chenronting 发表于 2011-2-1 09:51:39

我来帮顶, 想知道答案的人

bing614 发表于 2011-2-1 11:41:10

先_SQLite_FetchData读出二进程然后用BinaryToString转换就正常了.

nmgwddj 发表于 2011-2-1 12:27:39

感谢楼上,我先测试。

nmgwddj 发表于 2011-2-1 13:02:52

本帖最后由 nmgwddj 于 2011-2-1 13:04 编辑

_SQLite_FetchData 加了 $fBinary 参数。$aRow 的返回值还是一样的。。。怎么让它返回二进制的呢?

上代码Func SQLiteRead()
        ;_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
    _SQLite_Open($SQLite_Data_Path)
        _SQLite_Query(-1, "SELECT * FROM tbl_Package ORDER BY pkgid DESC;", $hQuery)
        While _SQLite_FetchData($hQuery, $aRow, $fBinary) = $SQLITE_OK
                $bts = BinaryToString($aRow, 1)
                GUICtrlCreateListViewItem($aRow & '|' & $bts & '|' & $aRow & '|' & $aRow, $ListView1)
        WEnd
        _SQLite_Close()
EndFunc   ;==>SQLiteRead

bing614 发表于 2011-2-4 09:37:45

$fBinary 为TRUE

nmgwddj 发表于 2011-2-4 13:02:33

好的,感谢我试试。

nmgwddj 发表于 2011-2-4 13:28:26

本帖最后由 nmgwddj 于 2011-2-4 18:38 编辑

Func SQLiteRead()
        ;_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListView1))
        _SQLite_Open($SQLite_Data_Path)
        _SQLite_Query(-1, "SELECT * FROM tbl_Package ORDER BY pkgid DESC;", $hQuery)
        While _SQLite_FetchData($hQuery, $aRow, $fBinary = False) = $SQLITE_OK
                $bts = BinaryToString($aRow, 1)
                GUICtrlCreateListViewItem($aRow & '|' & $bts & '|' & $aRow & '|' & $aRow, $ListView1)
        WEnd
        _SQLite_Close()
EndFunc   ;==>SQLiteRead这样写,就好了。。。

nmgwddj 发表于 2011-2-4 18:38:01

回复 7# bing614


    不好意思。没理解您的意思。。。我看错了。把$fBinary = False就好了。真的是感谢。

mikezunya 发表于 2016-6-16 14:12:49

回复 4# bing614


    非常感谢指点!

mikezunya 发表于 2016-6-17 14:48:56

回复 4# bing614


    大大你好,AU3有没有办法以ANSI编码写入呢?我看了下自带的_SQLite_Exec是以UNICODE写入的,有的程序读只按ANSI,求指教!
页: [1]
查看完整版本: sqlite如何用ANSI这种编码格式读取sqlite数据库?(已解决)