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中调用查询,就不存在乱码或者读取不出中文数据的问题了。 欢迎大家一起学习交流 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |