C++打开特定编码格式的文件(utf-8)

时间:2023-01-05 21:21:12
// FileEncoding.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <wchar.h>
#include <iostream>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    wchar_t linex[100];
    FILE * f1;
    //f1=_wfopen(L"C:\\uni.txt",L"rt+,ccs=UNICODE");  //or UTF-8
    //f1= _wfopen(L"C:\\uni.txt",L"rt+,ccs=UTF-8");  
    int fileOpen=_wfopen_s(&f1,L"C:\\uni.txt",L"rt+,ccs=UTF-8");        
       
    //locale loc("");
    //wcout.imbue(loc);

    while (!feof(f1))
   {
	fgetws(linex,100,f1);
	wcout<<linex;
   }

   fclose(f1);
   return 0;
}

也可以使用int fileOpen=fopen_s(&f1, "C:\\uni.txt","rt+,ccs=UTF-8");    

uni.txt中的内容是:this is a test

爱死msdn了,在VS2012中使用_wfopen会报错,而_wfopen_s通过,可参考:

http://msdn.microsoft.com/zh-cn/library/z5hh6ee9(v=vs.90).aspx