[已解决]sqlite,奇数个汉字无法插入数据库

情况是这样的,我从sqlite数据库中读取一串汉字字符串,resdata*
然后把这个字符串插入到另一个表格中.
std::string sql = StringUtils::format(“insert into anotherTable values(’%s’)”,resdata*)
问题就在这,
如果这个字符串resdata*是偶数的话,在debug中可以显示,
但是如果是奇数的话,debug中显示:字符串中的字符无效.
导致std::string sql .这个字符串也无效,然后执行表格插入的操作result = sqlite3_exec(data, sql.c_str(), NULL, NULL, NULL);就无法插入数据.
这个看了论坛好像都没有解决的方法.
不知道大家有没有这个问题,都怎么解决?

原来是我多虑了,尽管std::string sql .这个字符串显示:字符串中的字符无效.
但是执行后结果还是插入了数据库.
原来数据库被移到了debug目录下,我找错了.


先转成utf8,就没有问题。std::string不行。

数据库定义为utf8格式:

sqlite3_exec(db, “PRAGMA encoding = ‘UTF-8’”, 0, 0, 0);

插入数据时:

sqlite3_prepare_v2(db, @“insert or replace into basetable values(?, ?);” UTF8String], -1, &stmt, nil);

读取数据时:
sqlite3_stmt *statement;

NSString *keyword = initWithBytes:rowData length:sqlite3_column_bytes(statement, 0) encoding:NSUTF8StringEncoding];

你好,我的数据库已经是utf-8的格式了
另外我用的是visual studio2013,不用std::string的话不知道还能用什么

必须utf8格式