不同的字符串类

时间:2016-05-28 19:44:00

标签: c++ c++11 utf-8 wstring

根据this问题std::wstring的答案可以是u16stringu32string

根据this问题的第一个答案,我们可以简单地转换为u16string并获得std::wstring

我想知道的是:我如何知道我是否有16位或32位表示?如果我想将UTF8转换为std::wstring,看起来我无法使用所提供的解决方案,因为我不知道运行时间是什么。

那么,现在我该如何正确转换呢?或者这是不相关的,如果我有16位或32位表示而没有丢失任何东西,那么在这种情况下转换将总是独立成功?

有人可以澄清一下吗?

编辑:

所有这一切都来自于我的基于Windows的笔记本电脑(Win8.1)与MSVC 2010,转换字符串" abc" (" abc")失败并带有以下代码:

std::wstring_convert<std::codecvt_utf8<wchar_t> > myconv;
std::wstring table_name = myconv.from_bytes( (const char *) tableName );

我还没有在Linux / Mac上尝试过,但是看到Windows失败告诉我这不是一个好兆头而且我做错了。

0 个答案:

没有答案