我在窗口中删除了以下代码: -
#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的gettign erro,很少有人建议使用ICU或iconv头文件。但我不知道如何使用它们。
请帮我替换可以在linux上运行的代码 谢谢&amp;问候 维卡斯
答案 0 :(得分:6)
std::codecvt
恰好是<locale>
的一部分;它没有自己的标题。给定的编译器可能会将其实现拆分,但子块的名称是实现细节。
答案 1 :(得分:0)
Poco :: UnicodeConvert实用程序能够处理公共代码转换,并且它是可移植的。
例如:
string toUTF8(const Poco :: UTF16String&amp; utf16String){ 字符串结果;
Poco::UnicodeConverter::convert(utf16String, result);
return result;
}