2014-03-12 108 views
0

我想將std::string轉換爲SQLWCHAR*,但是我找不到方法。如何從std :: string轉換爲SQLWCHAR *

有什麼好的建議嗎?

+0

請參閱下面的帖子:[發佈] [1] [1 ]:http://stackoverflow.com/questions/11275225/converting-stdwstring-to-sqlwchar –

+0

@ user3037661,這就是'std :: wstring' – ABCmo

+0

拍好抓,不要緊,然後 –

回答

0

解決方法之一是簡單地使用std :: wstring而不是std :: string。使用Unicode字符集,你可以使用下面的語法定義一個寬字符串文字:

std::wstring wstr = L"hello world"; 

不過,如果你想用的std :: string堅持,那麼你需要將字符串轉換爲不同的編碼。這將取決於你的std :: string是如何編碼的。 Windows中的默認編碼是ANSI(但是在讀取文件或從網站下載文本時,最常見的編碼通常是UTF8)。

此答案顯示了一個將std :: string轉換爲Windows上的std :: wstring的函數(使用MultiByteToWideChar函數)。

https://stackoverflow.com/a/27296/966782

注意,答案使用CP_ACP作爲輸入的編碼(即ANSI)。如果你的輸入字符串是UTF8,那麼你可以改爲使用CP_UTF8

一旦你有一個std :: wstring的,你應該能夠很容易地檢索SQLWCHAR *使用:

std::wstring::c_str() 
+0

'L'需要一個字符串後,但在我的CAS我試圖轉換一個變量。 – ABCmo