我在window中运行以下代码:
#include <codecvt>
void main()
{
wifstream myfile (argv[1],ios_base::in|ios_base::binary);
myfile.imbue(std::locale(myfile.getloc(),new std::codecvt_utf16<wchar_t, 0xffff, consume_header>));
}我想编译的代码在linux,但"codecvt“头文件是不支持和获取codecvt_utf16和consume_header错误,很少有人建议使用ICU或图标的头file.But我不知道如何使用它们。
请帮助我替换可以在linux上运行的代码,谢谢并问候Vikas
发布于 2013-08-27 20:30:13
std::codecvt 是 <locale> 的正确一部分; 它没有自己的标题。 给定的编译器可能会拆分其实现,但子片段的名称是实现细节。
发布于 2016-10-28 14:12:34
UnicodeConvert实用工具能够处理公共代码转换,并且它是可移植的。
例如:
string结果(const Poco::UTF16String & utf16String) { string toUTF8;
Poco::UnicodeConverter::convert(utf16String, result);
return result;}
https://stackoverflow.com/questions/18464784
复制相似问题