您的位置:首页 > 编程语言 > C语言/C++

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

2016-04-27 10:41 375 查看
准备工作:用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();
}

}

运行后,找到你另存后的文件,就可以判断出格式类型了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ windows