C++中怎么读取UTF-8编码的文件?
求教各位大侠:
小弟要用C++读取一个UTF-8编码的文件,然后逐行打印到控制台。不知道该怎么做。
试过用宽字符解决,程序如下。但读出来的都是乱码。
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main()
{
wifstream winf;
winf.open("test.txt");
wstring wstr;
while(getline(winf, wstr))
{
wcout << wstr << endl;
}
winf.close();
return 0;
}
书上说wchar_t和wstring等类型是支持Unicode的,但我不知道它们支不支持UTF-8。另外我将原来的UTF-8文件在Notepad中转存成Unicode编码格式,用上面的程序读取,也还是乱码,而且乱码得比UTF-8文件还严重。不明白这是为什么?
请达人们指教下,读UTF-8文件用什么方法?标准C++对此有支持么?
谢谢!