概述
原文:http://blog.csdn.net/augusdi/article/details/8961008
写入Unicode文本时,要在文件头部加入Unicode文本标志0XFEFF。
#include <stdio.h>
#ifndef _UNICODE
#define _UNICODE //使用UNICODE编码
#endif
#include <Afx.h> //为了使用CString类
const int UNICODE_TXT_FLG = 0xFEFF; //UNICODE文本标示
int main()
{
FILE* WriteF;
CString Wstr = _T("一个测试写入文本");
WriteF = fopen("d:\test.txt","w+");
if(WriteF)
{
fwrite(&UNICODE_TXT_FLG,2,1,WriteF); //写入头部
fwrite(Wstr.GetBuffer(Wstr.GetLength()),Wstr.GetLength() * 2,1,WriteF);
fclose(WriteF);
}
return 0;
}
MFC代码如下:
#include <stdio.h>
#ifndef _UNICODE
#define _UNICODE
#endif
#include <Afx.h>
const int UNICODE_TXT_FLG = 0xFEFF;
// int main()
// {
// FILE* WriteF;
//
//
// CString Wstr = _T("一个测试写入文本");
// WriteF = fopen("d:\test.txt","w+");
//
// if(WriteF)
// {
// fwrite(&UNICODE_TXT_FLG,2,1,WriteF);
// fwrite(Wstr.GetBuffer(10),Wstr.GetLength() * 2,1,WriteF);
// fclose(WriteF);
// }
//
// return 0;
// }
int main()
{
CFile WriteF;
CString Wstr = _T("一个测试写入文本");
WriteF.Open(_T("d:\test.txt"),CFile::modeCreate | CFile::modeWrite);
if(WriteF)
{
WriteF.Write(&UNICODE_TXT_FLG,2);
WriteF.Write(Wstr.GetBuffer(Wstr.GetLength()),Wstr.GetLength()*2);
WriteF.Flush();
WriteF.Close();
}
return 0;
}
最后
以上就是英勇龙猫为你收集整理的[C++]MFC使用CFile读写Unicode字符集文件(文件头缺失导致乱码)的全部内容,希望文章能够帮你解决[C++]MFC使用CFile读写Unicode字符集文件(文件头缺失导致乱码)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复