sqlite默认保存数据是用UTF8格式,而现有程序开发工具都是默认GB2312的格式,所以你编程写的中文不转码直接写到库里后,用任何数据库工具看肯定都是乱码。但是读出来之后仍然是GB2312,所以显示正常。反之如果你用数据库工具写中文,则默认存UTF8格式,用程序读出来就是乱码。也就是你说的不可兼得。 如果要实现能够编程和数据库工具读写都正常,必须要转码。也就是说,保存时候,要把GB2312转成UTF8,而读出时候需要把UTF8在转成GB2312。 网上有源程序可用,叫做CCodingConv的类,你搜一个源码,在每次执行sql语句之前,将其转换一下即可。将整个sql语句进行转换,E文的会保持不变,而中文的会自动转换成合适的编码,执行即可实现要求。
sqlite 中文解决方案 中文按utf-8的编码存进去,取出来的时候转成gb2312再显示。