linux中的codecvt头文件替换

时间:2013-08-27 12:00:10

标签: linux

我在窗口中删除了以下代码: -

#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;问候 维卡斯

2 个答案:

答案 0 :(得分:6)

std::codecvt恰好是<locale>的一部分;它没有自己的标题。给定的编译器可能会将其实现拆分,但子块的名称是实现细节。

答案 1 :(得分:0)

Poco :: UnicodeConvert实用程序能够处理公共代码转换,并且它是可移植的。

例如:

string toUTF8(const Poco :: UTF16String&amp; utf16String){     字符串结果;

Poco::UnicodeConverter::convert(utf16String, result);

return result;

}