環境:
Qt C++(msvc c++)
1.將與數據庫交互的代碼文件編碼轉換為utf-8-bom編碼,(可使用notepad ++進行轉換)
2.在代碼文件頭文件中加上下面代碼。
//vs2010 版本是 1600
#if defined(_MSC_VER) && (_MSC_VER >= 1600 )
#pragma execution_character_set("utf-8")
#endif
3.從數據庫檢索的漢字處理
直接使用QString(azResult[i*ncolumn+1]) 這樣編碼不會亂碼顯示
4.向數據庫寫入漢字
char **zErrMsg = 0 ;QString sql = QString("INSERT INTO ParamGroup (GroupNum,[Group],GroupLv)? VALUES('%1' ,'%2','%3')").arg("8").arg("驅動器參數").arg("0");int rc = sqlite_exec(db, sql.toUtf8().data(), NULL,NULL, zErrMsg ) ;if(rc == SQLITE_OK){sqlite3_free( zErrMsg );return false;
}return true;
注:這里的?[Group]使用了方括號是因為 Group 在sql中是個關鍵字?!。