我来自中国,我有一个关于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