将char数组转换为WCHAR数组的最简单方法是什么?

时间:2009-12-04 10:10:23

标签: c++ string unicode wchar

在我的代码中,我收到了const char array,如下所示:

const char * myString = someFunction();

现在我想将它作为wchar array进行后处理,因为我之后使用的函数不处理窄字符串。

实现这一目标的最简单方法是什么?

最终MultiByteToWideChar? (但是,因为它是一个我输入的窄字符串,它没有多字节字符=>可能不是最漂亮的解决方案)

2 个答案:

答案 0 :(得分:3)

除非您在窄字符串中使用扩展字符,否则MultiByteToWideChar将起作用。如果它是一个普通的字母数字字符串,那么它应该可以正常工作。

您还可以查看mbstowcs,它有点不那么复杂,但不能提供相同的控制量。

答案 1 :(得分:3)

const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];