【问题标题】:Easiest way to convert UnicodeString to const char* in c++?在 c++ 中将 UnicodeString 转换为 const char* 的最简单方法?
【发布时间】:2013-04-23 06:27:37
【问题描述】:

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

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

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

使用的环境是c++ builder xe2

【问题讨论】:

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


【解决方案1】:

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?

【讨论】:

  • wchar_t is not Unicode 并且您不能依赖 std::wstring 大到足以存储 Unicode 字符。如果可能,请酌情使用std::u16stringstd::u32string
  • 是的,抱歉,wchar_t may 存储 unicode 字符,但它的大小取决于编译器。谢谢@Captain Obvlious
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2010-09-14
    • 2011-03-01
    • 2013-12-31
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多