我试图将std::string
转换为SQLWCHAR*
,但我无法找到。
有什么好的建议吗?
答案 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()