如何判斷一個txt檔案的編碼格式
阿新 • • 發佈:2019-02-03
準備工作:用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(); } }
執行後,找到你另存後的檔案,就可以判斷出格式型別了!