1. 程式人生 > >MFC用CStdioFile類讀取中文文字時亂碼問題的一種解決方法

MFC用CStdioFile類讀取中文文字時亂碼問題的一種解決方法

        在文章開始之前,先宣告一下,本人的程式設計環境為vs2010,MFC工程使用unicode字符集。

        在MFC中,用CStdioFile類可以很方便地一行一行讀取檔案。 可是最近我在編寫MFC程式時,用CStdioFile讀取中文文字時,發現讀入的是亂碼。在網上查了很多方法都得不到很好的解決。後來本人冷靜下來仔細分析了一下,找到了一種可行的方法。下面是我的這種方法的基本思路:

                                                    讀入                          MultiByteToWideChar()  

中文文字(ascii編碼方式)  --------------> char ch[ ]   ----------------------------------> wchar_t wch[ ]

        首先,為了讀入中文文字,我從CFile類派生了自己的類CMyFile,並在CMyFile類中新增並實現了每次讀取一行的GetLine()函式。

        然後,用GetLine函式每次從檔案中讀取一行,存入字元陣列char ch[ ]中。

        到目前為止,陣列ch[ ]中的字元是ascii編碼方式,為了將其轉換為unicode編碼方式,需呼叫API函式MultiByteToWideChar()。

        在這裡,具體的程式碼我就不詳細寫了,自己研究一下應該很容易寫出的。