如何将std :: string转换为SQLWCHAR *

时间:2014-03-12 21:55:23

标签: c++

我试图将std::string转换为SQLWCHAR*,但我无法找到。

有什么好的建议吗?

1 个答案:

答案 0 :(得分:0)

一种解决方案是首先简单地使用std :: wstring,而不是std :: string。使用Unicode字符集,您可以使用以下语法定义宽字符串文字:

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

但是,如果你想坚持使用std :: string,那么你需要将字符串转换为不同的编码。这将取决于您的std :: string的编码方式。 Windows中的默认编码是ANSI(但是,从网站读取文件或下载文本时,最常见的编码通常是UTF8。)

这个答案显示了一个在Windows上将std :: string转换为std :: wstring的函数(使用MultiByteToWideChar函数)。

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

请注意,答案使用CP_ACP作为输入编码(即ANSI)。如果您的输入字符串是UTF8,那么您可以改为使用CP_UTF8代替。

一旦你有了std :: wstring,你就可以使用以下方法轻松检索SQLWCHAR *:

std::wstring::c_str()