在Unicode下使用MFC的CFile读取有中文的文件,直接显示会显示乱码。

解决办法:使用CA2W进行转换编码即可

 CFile file;if (file.Open(m_pDoc->m_strFilePath, CFile::modeRead)){int nLen = (int)file.GetLength();char * szDate = new char[nLen + 1];file.Read(szDate, nLen);szDate[nLen] = '\0';//用CA2W 转换格式CString strbuf = CA2W(szDate, CP_UTF8);m_editShowFile.SetWindowText(strbuf);file.Close();delete[] szDate;}

关于编码转换的补充:

字符串的ASCII和UNICODE之间的转换

(1) Win32提供了API函数MultiByteToWideChar和WideCharToMultiByte来提供这种功能。

(2) ATL还提供了另一套转换宏——CA2W、CA2T、CA2WEX、CA2CT、CW2T、CW2A、CW2AWX

CW2A将宽字符集(Unicode)转化为多字符集(ASCII)

CA2W就是将多字符集(ASCII)转化为宽字符集(Unicode)

头文件:#include <atlstr.h>

注意要利用USES_CONVERSION提前进行声明。

C: convert 转换

W: wide 广泛的

2: to 到

A ASCII; ASCII码

MFC中CFile读取中文乱码相关推荐

  1. C#中StreamReader读取中文出现乱码

    有时在用C#中StreamReader读取中文时出现乱码 如: using System; using System.Collections.Generic; using System.Linq; u ...

  2. linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...

    linux中解决mysql中文乱码方法 改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /v ...

  3. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别 参考文章: (1)java ...

  4. RStudio中,出现中文乱码问题的解决方案

    RStudio中,出现中文乱码问题的解决方案 参考文章: (1)RStudio中,出现中文乱码问题的解决方案 (2)https://www.cnblogs.com/nxld/p/6098987.htm ...

  5. 解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码

    解决 IntelliJ IDEA 内置的 Tomcat 日志中显示的中文乱码 方法 1 方法 2(不推荐) 笔者的环境: JDK 13.0.2 Maven 3.6.3 Tomcat 9.0.41(Se ...

  6. linux tomcat 日志乱码,Linux下TOMCAT中日志出现中文乱码

    红帽子AS4,其中TOMCAT为6.0. 结果TOMCAT中日志出现中文乱码 解决方法修改i18n: 最后的配置为: [root@linux etc]# more /etc/sysconfig/i18 ...

  7. 【转】QT中使用MYSQL中文乱码解决方法

    [转]QT中使用MYSQL中文乱码解决方法 Linux下乱码解决办法: 1.在QT程序的main.cpp的main函数中添加红色字那三句: int main(int argc, char *argv[ ...

  8. linux中mysql不显示中文_linux中解决mysql中文乱码方法

    改默认编码: /etc/init.d/mysql start (stop) 为启动和停止服务器 /etc/mysql/ 主要配置文件所在位置 my.cnf /var/lib/mysql/ 放置的是数据 ...

  9. Java学习中遇到的中文乱码问题的整理和解决方法

    目录 前言 1. 学习SpringMVC框架的时候遇到的中文乱码(一)  2. 学习SpringMVC框架的时候遇到的中文乱码(二)  3. 学习Servlet的时候可能会遇到的中文乱码(一)  4. ...

最新文章

  1. 小图拼接大图MATLAB实现
  2. go 定义一个结构体并赋初始值_Go中必须谈论的四个迷点
  3. 搞懂这四个问题,企业数字化转型才可能成功
  4. 并发(Concurrency)和并行(Parallelism)
  5. SAP ABAP实用技巧介绍系列之Debug XSLT transformation
  6. python创建虚拟环境失败_?conda创建虚拟环境失败,如何解决?
  7. java cookie安全_cookie的安全性问题
  8. 用诗歌描写计算机课,小班诗歌公开课教案范文【3篇】
  9. 自学python考哪些证书-Python自学难吗?有哪些课程内容?
  10. 图像处理笔记(十七):再看傅里叶变换
  11. 高通MSM8937芯片参考资料免费下载
  12. 弧长公式 | 微积分
  13. 爬虫,酷我音乐接口解析
  14. 3 非齐次线性微分方程与无量纲化
  15. 简单了解计算机组成原理 -- CPU与操作系统
  16. 在Outlook 2007日历中显示两个时区
  17. #4258. 铃铛计数问题
  18. 绿色和平发布IT企业环保排名
  19. 武汉理工大学2021计算机考研经验分享
  20. SpringBoot 安全漏洞之XSS注入攻击(jsoup版本)

热门文章

  1. Win32关于调整窗口大小时,窗口闪烁问题及解决办法
  2. 微信小程序封装echarts组件
  3. Go设计模式--访客模式
  4. c语言求圆锥的表面积和体积_用C语言求圆锥体积
  5. 泛微荣获统信创客北京·鲲鹏应用创新大赛2022北京区域三等奖
  6. 《高等数学》学习笔记一:函数与极限
  7. ppp项目是什么意思?ppp模式是什么意思?PPP问题大全
  8. 互联网的组成_网络层
  9. 01 | Java入门级学习指南
  10. GPU-CUDA-图形渲染分析