什么编码做的std :: string.c_str()使用?(What encoding does

2019-06-23 13:10发布

我想一个C ++转换std::string为UTF-8或std::wstring ,而不会丢失信息(考虑包含非ASCII字符的字符串)。

据http://forums.sun.com/thread.jspa?threadID=486770&forumID=31 :

如果的std :: string具有非ASCII字符,您必须提供从您的编码转换为UTF-8的功能[...]

什么编码做std::string.c_str()使用? 我怎样才能将其转换为UTF-8或std::wstring一个跨平台的方式?

Answer 1:

std::string本身不使用编码-它会回报你把它字节。 例如,这些字节可能会使用ISO-8859-1编码......或任何其他真:在有关的编码信息是不存在 - 你要知道那里的字节从来啦!



Answer 2:

std::string包含任何字节序列,因此编码是由你。 你必须知道它是如何编码。 但是,如果你不知道这是别的东西,它可能只是ASCII。 在这种情况下,它已经是UTF-8兼容。



文章来源: What encoding does std::string.c_str() use?
标签: c++ string utf-8