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中调用查询,就不存在乱码或者读取不出中文数据的问题了。

欢迎大家一起学习交流   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值