1. 程式人生 > >讀取Unicode格式TXT檔案問題

讀取Unicode格式TXT檔案問題

問題:

由於本來windows的txt字尾檔案讀取格式預設為ansi,但是為了在mfc中讀取中文字元

使用CStidFile開啟檔案直接讀取會出現亂碼

檔案轉換:

1.先將ansi格式文件另存為unicode文件

2.開啟檔案模式新增CStdioFile::typeUnicode

查詢方便:

為了方便查尋,所以將字元對照表寫進txt檔案,每次讀完一次對照表就寫入unordered_map中

每次迴圈呼叫unordered_map時,可以直接進行查詢而省去了硬編碼的部分

但是在查詢時unordered_map,明明是有key值的,但是卻查詢失敗,返回end

到此為止,問題已經持續幾個小時了!!

原因:

使用CString的getlength函式,查到,讀取第一個片語時,unicode格式txt檔案包含2個位元組的位元組頭!!!!!

所以每次找匹配時,都是錯誤的!!

遂在開啟檔案後,先將檔案後移2個位元組,問題解決

CStdioFile file;

file.Open(_T("D://1//test.txt"), CStdioFile::modeRead | CStdioFile::typeUnicode);

file.Seek(2, CFile::begin);