读书人

c++插入sqlite中文总是乱码amp;#215;amp;#21

发布时间: 2012-02-04 15:43:08 作者: rapoo

c++插入sqlite中文总是乱码××××××××
CppSQLite3DB db;
db.open("\\temp\\data\\NCTDataBase.s3db");
memset (acTmp, 0, sizeof(acTmp));
strcpy(aa, "大婶");
sprintf(acTmp, "UPDATE t_b_commodity SET COMMODITY_NAME = '大婶' where COMMODITY_CODE = '33020009';",aa);
db.execDML(acTmp);

用可视化工具观察数据库是乱码,
且在获取数据的时候始终得不到正确的中文

wchar_t *pTmp = AnsiToUnicode(q.fieldValue(0));
CString aa = (CString)q.fieldValue(0);

两种方式都不对



[解决办法]
转换成utf8编码存放!
[解决办法]
字符集的原因,sqlite 仅支持
"UTF-8";
"UTF-16";
"UTF-16le";
"UTF-16be";

这几种字符集。你用 gb2312 / gbk 则需要自己进行特殊处理了。
[解决办法]
使用命令行方式撕开你的数据库,设置编码字符集
PRAGMA encoding="UTF-8";

[解决办法]

探讨
使用命令行方式撕开你的数据库,设置编码字符集
PRAGMA encoding="UTF-8";

读书人网 >其他数据库

热点推荐