从字符数组转换为字符串

时间:2015-06-17 04:24:31

标签: c++

我想将一个字符数组转换为像这样的宽字符串

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
std::wstring ws=converter.from_bytes({99,108,105,235,110,116}).

但这不起作用。

`235` is an invalid narrowing conversion from int to char:constant character doesn't fit in destination type.

1 个答案:

答案 0 :(得分:1)

代码from_bytes唯一可行的重载是版本为const byte_string&。您没有使用自定义分配器,因此byte_stringstd::basic_string<char, std::char_traits<char>, std::allocator<char>>,a.k.a。std::string

std::string有一个initalizer_list<char>构造函数;但是,您平台上的char已签名,无法代表值235,从而导致从235char的隐式转换为缩小转化,但不允许支撑初始化列表的顶级。

使用char(235)代替将其显式转换为char