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";
------解决方案--------------------------------------------------------