Qt5 加载中文路径以及中文文本显示乱码问题
时间:2019-10-22
本文章向大家介绍Qt5 加载中文路径以及中文文本显示乱码问题,主要包括Qt5 加载中文路径以及中文文本显示乱码问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
关于Qt中文乱码的问题,网上查找的解决方案,千篇一律的是:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));
但是,实际上这种方案并不能彻底解决问题。
经过自己的测试,总结了一个乱码问题的解决方案:
在获取中文路径时,使用:
QString::fromLocal8Bit()
在转化为std::string使用时,使用下面方法转换,这样使用FILE、ifstream等读取文件时,不会出错
QStirng::toLocal8Bit()
当把std::string再输出到Qt界面时,使用下面方法转换后,显示不会出现乱码
QString::fromLocal8Bit(std::string.c_str())
测试代码如下:
// 将中文路径赋给 QString QString path = QString::fromLocal8Bit("C:\\Users\\ZT_007\\Desktop\\效率问题.txt"); printf("%s.\n\n", path.toLocal8Bit().data()); // 将 QString 转 std::string std::string test = path.toLocal8Bit().data(); printf("%s.\n\n", test.c_str()); // 将 std::string 转 QString QString test2 = QString::fromLocal8Bit(test.c_str()); printf("%s.\n\n", test2.toLocal8Bit().data());
测试结果:
原文地址:https://www.cnblogs.com/xingzhensun/p/11719769.html
- Web前端开发初级阶段需要学习的知识有哪些?
- 作为TensorFlow的底层语言,你会用C+构建深度神经网络吗?
- 企业应用中使用Silverlight 3
- oracle:db-link使用
- 5个炫酷的Python工具,你都用过么?
- 保护ASP.NET 应用免受 CSRF 攻击
- .NET:Entity Framework 笔记
- redis 学习笔记(1)-编译、启动、停止
- 致研究者:2018 AI研究趋势
- redis 学习笔记(3)-master/slave(主/从模式)
- 解决Chrome或其它WebKit浏览器input和textarea的黄色/蓝色边框问题
- eclipse/intellij Idea集成jetty
- nginx学习(1):编译、安装、启动
- Immutable(不可变)集合
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ESP8266如何设置wifi。
- ESP8266搭建web服务器
- 关于持续交付中Git分支管理的思考
- 轻松应对并发问题,Newbe.Claptrap 框架中 State 和 Event 应该如何理解?
- 如何暂停一个正在运行的线程?
- WebMonitor采集端优化之路
- 美颜算法之自动祛斑算法实现 | 案例分享
- 附025.kubeadm部署Kubernetes更新证书
- 消息提示时间的格式化例子(小程序)
- 【Spark】用scala2.11编译打包构建镜像
- 移动端事件穿透的原理与解决方案
- 你被追尾了
- 深入理解JavaScript作用域
- 《闲扯Redis七》Redis字典结构的底层实现
- 深入理解JavaScript闭包之什么是闭包