首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

c++插入sqlite中文总是乱码××××××××解决方法

2012-02-04 
c++插入sqlite中文总是乱码CppSQLite3DB dbdb.open(\\temp\\data\\NCTDataBase.s3db)memset (acTmp, 0

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";

热点排行