如何判断一个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();
}
}
运行后,找到你另存后的文件,就可以判断出格式类型了!
主程序如下:
创建一个基于对话框的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++实现JNI接口需要注意的事项
- 如何重装TCP/IP协议
- 关于指针的一些事情
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- c++ primer 第五版 笔记前言
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- share_ptr的几个注意点
- 微软镜像下载