有一个问题,下面的代码适用于Windows 7而不适用于Windows XP?不管怎样,你知道原因吗?提前致谢。我已经检查过它不是数据库错误。
对于Win 7,它返回存储的内容,对于Win XP也是如此。但是,XP格式化将CString设置为 ""
。
if(getDB()->getEncoding() == IDatabase::UTF8){
a_value.Format(_T("%s"), sqlite3_column_text(getCommand()->getStatement(), idx));
}else{
a_value.Format(_T("%s"), sqlite3_column_text16(getCommand()->getStatement(), idx));
}
此外,我们确信这不是一个unicode问题。
答案 0 :(得分:0)
这实际上似乎不是Windows问题。你确定你没有在有效的版本和没有版本的版本之间做不同的构建吗?
上面的代码存在问题,因为如果进行Unicode构建,sqlite3_column_text()
将返回错误类型的字符串。对于Unicode版本,您需要sqlite3_column_text16()
代替。
答案 1 :(得分:0)
检查编译期间配置的字符集在两个平台上是否相同
的unicode
或
多字节
也许有帮助,再见