Возникла проблема, ниже кода работает для Windows 7, а не для Windows XP? По какой-либо причине, вы знаете причину этого? Заранее спасибо. Я проверил, что это не ошибка БД.Проблема с CString Format и различия в 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));
}
Кроме того, мы уверены, что это не проблема с юникодом.
база данных, вероятно, UTF -8, и вы создаете с использованием Windows Unicode, который является UTF-16, используйте 'a_value.Format (L"% s ", sqlite3_column_text16 (getCommand() -> getStatement(), idx)) 'для обоих случаев. – dalle
Вы правы, но у нас есть кодер для решения этой проблемы. –