使用std读取UTF8文件并将字符串打印到控制台

时间:2014-08-03 02:47:08

标签: c++ visual-studio-2012 utf-8 std

我很困惑这不好笑。

使用VS2012,控制台项目,配置中的字符集设置为unicode。

该文件采用UTF8格式。

我将std::ifstream加载到std::string的向量中。 BOM也会得到处理,调试器中显示的字节与文件中的字节匹配。

我该如何将此字符串打印到控制台?

此行printf( "%s\n", line.c_str() );仅打印垃圾。

没什么特别的。这是完整的代码:

std::string line;
std::ifstream file( fullpath );

if( file == NULL )
{
    printf( "Error opening file\n" );

    return;
}

file.seekg( 3, file.beg );

while( std::getline( file, line ) )
{
    printf( "%s\n", line.c_str() );
}

0 个答案:

没有答案