c#中的sqlite ado以utf8格式保存,因此沒有問題。用c++寫是用ansi寫的,用ansi取也沒問題,而用c++寫是用ansi取,用c# sqlite ado取是用utf8,所以有亂碼的問題。解決問題的關鍵在於使c++編寫適合sqlite讀取,即使c++將utf8格式的具體代碼編寫如下:String gbktoutf8(STD::String &;str gbk){ string stroutput 8 =““;wchar _ t * str 1;int n = MultiByteToWideChar(CP _ ACP,0,strGBK.c_str(),-1,NULL,0);str1 =新WCHAR【n】;MultiByteToWideChar(CP _ ACP,0,strGBK.c_str(),-1,str1,n);n = WideCharToMultiByte(CP _ UTF8,0,str1,-1,NULL,0,NULL,NULL);char * str 2 = new char【n】;WideCharToMultiByte(CP _ UTF8,0,str1,-1,str2,n,NULL,NULL);strOutUTF8 = str2刪除【】str 1;str 1 = NULL;刪除【】str2str2 = NULL返回strOutUTF8}
方便廣大網友節省壹些時間!