CStdioFile::ReadString(CString str)读ANSI文件的乱码问题

今天在实现提取某ANSI文件内字符信息时发现中文都是乱码,折腾好久,试了数种方法,就以下两种比较简单有效些:(vs2019解决方案属性设置的是Unicode而非多字节)

CStdioFile FileRead(LPCTSTR(_T("***")),CFile::modeRead);
CString strRead=_T("");
while(FileRead.ReadString(strRead))
{
    vecFileLines.push_back(strRead);
}

1. 用一个csdn上的函数,链接:

https://blog.csdn.net/Cashey1991/article/details/8266986

while(FileRead.ReadString(strRead))
{
    ReadStringCharToUnicode(strRead);
    vecFileLines.push_back(strRead);
}

2. std::locale::gloabl(std::locale(""))

在while循环读取字符串前用这个进行系统区域设置即可。

注意初始化CStdioFile对象时的文件打开方式,今天因为在各种尝试过程中忘记删除CFile::typeBinary,使得上述方法仍无法有效读取。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值