在c ++中将UnicodeString转换为const char *的最简单方法?

时间:2013-04-23 06:27:37

标签: c++ windows api unicode-string c++builder-xe2

我是c ++的新手,并且在将UnicodeString转换为字符串时遇到问题,所以现在正在寻找最简单的方法将一种类型转换为另一种类型。

我想使用基本的windows函数,需要使用UnicodeString的字符串,如何使代码工作?

UnicodeString Exec = "notepad";
WinExec(Exec.c_str(), 0);

使用的环境是c ++ builder xe2

2 个答案:

答案 0 :(得分:3)

std::string无法存储unicode数据。你需要一个std :: wstring。

我之前从未听说过UnicodeString,但在这里查看API:

http://docwiki.embarcadero.com/Libraries/XE2/en/System.UnicodeString_Methods

它有一个名为.c_str()的函数,它返回一个wchar_t *,然后你可以用它来构造std::wstring

如果你真的需要一个std :: string,那么看看这个答案。

How to convert wstring into string?

答案 1 :(得分:1)

如果您正在寻找C ++中完整的unicode支持,请转到ICU API。这是一个网站,您可以在其中找到有关它的一切。 http://site.icu-project.org/