如何判断一个txt文件的编码格式

准备工作:用windows自带的记事本工具,创建一个文件,里面写几句话。然后使用另存为按钮,分别另存为为:ANSI、UTF-8、Unicode、Unicode Big endian四种格式。

主程序如下:

创建一个基于对话框的MFC程序,在对话框中拖拽一个按钮,双击后添加如下代码到这个按钮响应的函数中:

void CFileCodeDlg::OnBnClickedButton1()
{
	// TODO: Add your control notification handler code here
	//打开一个文件
	CFileDialog dlg(TRUE,"Txt",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"(*.txt)|*.txt||");
	if (dlg.DoModal()==IDOK)
	{
		CString strFilePath = dlg.GetPathName();
		CFile file;
		file.Open(strFilePath,CFile::modeRead);
		if (!file)
		{
			AfxMessageBox("呵呵哒!");
		}
		//读取文件头
		unsigned char str[1024];
		unsigned short head;
		size_t len = sizeof(head);
		file.Read(&head,sizeof(head));
		switch(head)
		{
		case 0xbbef:
			AfxMessageBox("UTF-8");
			break;
		case 0xfffe:
			AfxMessageBox("unicode Big Endian格式");
			break;
		case 0xfeff:
			AfxMessageBox("unicode格式");
			break;		
		case 0xd2ce:
			AfxMessageBox("ANSI 格式");
			break;
		default:
			AfxMessageBox("无法判断格式");
			break;
		}
		file.Close();
	}
	
}

运行后,找到你另存后的文件,就可以判断出格式类型了!

    原文作者:忘世麒麟
    原文地址: https://blog.csdn.net/baijiaheizhiganmao/article/details/51259167
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞