2

我在窗口中运行以下代码:-

#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 中运行的代码 谢谢和问候 Vikas

4

2 回答 2

6

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

于 2013-08-27T12:30:12.783 回答
0

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

例如:

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

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

return result;

}

于 2016-10-28T06:12:33.663 回答