1. 程式人生 > >如何判斷一個txt檔案的編碼格式

如何判斷一個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();
	}
	
}

執行後,找到你另存後的檔案,就可以判斷出格式型別了!