存在一個問題,下面的代碼適用於Windows 7,不適用於Windows XP?無論如何,你知道這個的原因嗎?提前致謝。我檢查過它不是數據庫錯誤。CString格式問題和Windows XP和7中的差異?
對於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的問題。
數據庫可能是UTF -8,並且您正在使用Windows「Unicode」構建UTF-16,它使用`a_value.Format(L「%s」,sqlite3_column_text16(getCommand() - > getStatement(),idx ))`這兩種情況。 – dalle 2011-01-20 13:07:57
你是對的,但我們也有一個編碼器來解決這個問題。 – 2011-01-20 13:09:42