我來自中國,我有一個關於sqlite的問題,但是我的英語有點差。我會盡力表達自己。在sqlite3中使用漢字
最近,我在使用Visual Studio 2005(VC++)進行WinCE開發的sqlite中使用了一個sqlite數據庫。在我的表格中,一個字段包含一些中文字符。當我展示這些時,我沒有得到我想要的,因爲他們都是陌生人物。
我使用函數的'我想要的返回列值,但我不能。
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
// or
const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
他們說sqlite3中的編碼是utf8,所以你需要把它轉換成unicode。我試圖用看起來像這樣在互聯網上發現了一個函數來完成這項工作:
wstring UTF8ToUnicode(const string& strin)
{
wstring strOut;
int dwNum = MultiByteToWideChar(CP_UTF8,0,strin.c_str(),-1,0,0)
wchar_t* pBuffer = new wchar_t[dwNum];
if (!pBuffer){return strOut;}
memset(pBuffer,0,dwNum*sizeof(wchar_t));
if (MultiByteToWideChar(CP_UTF8,0,strin.c_str(),-1,pBuffer,dwNum)>=0)
{
strOut= pBuffer;
}
delete[] pBuffer;
return strOut;
}
請標記語言(C++)。 – 2011-12-20 10:34:12
您可能想要解釋_「我使用函數的'返回列值,但我不能。」_...真的不知道在那裏創建了什麼點。 – jro 2011-12-20 10:42:03