您的位置:首页 > 其它

MFC用CStdioFile类读取中文文本时乱码问题的一种解决方法

2015-03-29 20:52 696 查看
在文章开始之前,先声明一下,本人的编程环境为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()。

在这里,具体的代码我就不详细写了,自己研究一下应该很容易写出的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: