sqlite乱码问题
今天做了一个程序,是关于delphi连接sqlite的,sqlite里面的字段设置都是用nvarchar类型的
但是如果结合三方控件,连接成功sqlite的时候,在delphi界面上显示却是乱码,我是在formcreat事件中写的
cn_SQLITE.Close;
cn_SQLITE.Database := '.\chaobiao.db';
cn_SQLITE.Open;
然后开始进行插入语句,但是如果执行的时候就出现乱码~为什么呢?
[解决办法]
你可以找找管理工具查看你的资料表:
关于管理工具:
SQLITE ADMINISTRATOR是以ANSI处理资料的
SQLITE BrowER是以UTF8处理的。
另外橙子写的一个管理工具同时支持两种编码。
ASQLITE如是UTF8编码方式时,插入数据会是乱码。但直接以控件上的数据插入却不会乱码,例
query1.sql.text:='insert into test (name) values ('+quotedstr(edit1.text)+')';
所以使用UTF8就不能直接使用GRID编辑数据。
使用ANSI有另一个BUG,中文模糊查询时会出错 例:select * from user where name like '陈%'
结果出来,不是姓陈的也会出来,
使用3.2.1版本的SQLITE3.DLL可以解决这个中文查询问题。
ASQLITE有一BUG,偶尔不能在GRID中保存数据。使用ZEROLIB比较不错,但生成的EXE比较大。