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()。

        在这里,具体的代码我就不详细写了,自己研究一下应该很容易写出的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值