作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
没有方法 std::to_u16string(...)
。显然 static_cast
似乎不是进行此类转换的最合适方法。
对于相反的转换,从 string
到 int
,可以使用函数 std::stoi()
定义转换器,但是从 int
到 u16string
它不工作。
我尝试了以下方法:
int i = 1234;
std::u16string s;
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> convert;
s = convert.from_bytes(std::to_string(i));
std::cout << s.str() << " (" << s.length() << ")" << std::endl;
我也试过这样做:
typedef std::basic_stringstream<char16_t> u16ss;
u16ss ss;
ss << 1234;
std::u16string s = ss.str();
但它不起作用。
有没有办法直接进行这种转换,还是必须经过一些中间转换?
最佳答案
您可以尝试以下方法:
std::u16string to_u16string(int const &i) {
std::wstring_convert<std::codecvt_utf8_utf16<char16_t, 0x10ffff, std::little_endian>, char16_t> conv;
return conv.from_bytes(std::to_string(i));
}
关于c++ - 如何将整数转换为 std::u16string (C++11)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211134/
我是一名优秀的程序员,十分优秀!