sqlite3导库方法与wxsqlite3不能读取中文的问题解决

前端之家收集整理的这篇文章主要介绍了sqlite3导库方法与wxsqlite3不能读取中文的问题解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在使用wxsqlite3时,通常会遇到中文不能读取问题。 【wxwidgets中文论坛】 http://www.wxcn.org

原因是:wxsqlite3在内部使用的是utf-8编码,如果导入的sqlite3数据库是gb2312的,那么wxsqlite3在读取的时候,将获取不到中文字段的数据。

解决办法,创建utf-8编码的sqlite3数据库,wxsqlite3就可以正常读写。

使用工具创建的方法这里不做详细介绍,下面具体介绍如何使用sqlite3.exe命令行创建utf-8编码的数据库

比如需要创建一个sqlite3数据库zl.db ,先运行如下命令创建数据库

sqlite3.exe zl.db

创建数据表TDayInfo:
如格式为:GL,ZL,Info,以GL为主键

创建的相关的sql语句:
PRAGMA encoding="UTF-8";PRAGMA foreign_keys=OFF;
CREATE TABLE "TDayInfo" (
"GL" TEXT NOT NULL,
"ZL" TEXT,
"Info" TEXT,
PRIMARY KEY ("GL" ASC)
);

设置模式的命令为:
.mode csv (或者使用“ .separator "," ”指定分隔符为英文逗号)
导入数据说明:
其中rq.csv是以逗号分隔的csv文件,总共三行,包含中文字段,可从access中导出,或者从直接用文本编辑器编辑。

如需在wxsqlite3中使用,则rq.csv必须保存成utf-8编码

——导入rq.csv后使用sqlite3.exe查询为乱码,但是使用wxsqlite3访问则可正常显示中文

如rq.csv是ASCII编码,那么导入后,使用sqlite3.exe查询正常显示中文,但使用wxsqlite3访问则查出来为空值。

导入的命令为:
.import rq.csv TDayInfo
导入完成后就可以使用了。
退出命令:
.exit

这样,utf-8编码的sqlite3数据库就创建成功了。此时在wxsqlite3中调用查询,就不存在乱码或者读取不出中文数据的问题了。

欢迎大家一起学习交流

猜你在找的Sqlite相关文章