Qt+Vs踩坑之QString转std::string中文乱码

文章目录

Qt中字符串存在两种中文乱码的情况:1.Qt内部的编码造成的中文乱码;2.QString与std::string之间转换造成的中文乱码。

1.Qt内部的编码造成的中文乱码

这种情况可以在文件中添加如下语句:

cpp 复制代码
#pragma execution_character_set("utf-8")

或者在代码中使用如下格式:

cpp 复制代码
QString::fromLocal8Bit("中文");

2.QString与std::string之间转换造成的中文乱码

cpp 复制代码
QString str2qstr(const string str)  
{  
    return QString::fromLocal8Bit(str.data());  
}  
  
string qstr2str(const QString qstr)  
{  
    QByteArray cdata = qstr.toLocal8Bit();  
    return string(cdata);  
}  

3.QString、string、char*之间的转换

在无中文的情况下,使用以下方式转换是没问题的

(1)QString 转换成 char *

cpp 复制代码
QString path ;
const char *c_str = path.toUtf8().constData()  //因为QT默认是Utf8

(2)char * 转换成 QString

c 复制代码
  char *c_str = "123456789";
  QString string = QString(QLatin1String(c_str));

(3)QString转string

cpp 复制代码
QString  file_name1;
std::string a = file_name1.toStdString();

4.参考文献

QT中出现的中文乱码问题及其解决方案
Qt开发中文显示乱码
https://blog.csdn.net/qq_35007834/article/details/88658500

相关推荐
酷爱码1 小时前
如何通过python连接hive,并对里面的表进行增删改查操作
开发语言·hive·python
画个大饼1 小时前
Go语言实战:快速搭建完整的用户认证系统
开发语言·后端·golang
喵先生!2 小时前
C++中的vector和list的区别与适用场景
开发语言·c++
Thomas_YXQ2 小时前
Unity3D Lua集成技术指南
java·开发语言·驱动开发·junit·全文检索·lua·unity3d
xMathematics3 小时前
计算机图形学实践:结合Qt和OpenGL实现绘制彩色三角形
开发语言·c++·qt·计算机图形学·cmake·opengl
yuanManGan5 小时前
C++入门小馆: 深入了解STLlist
开发语言·c++
北极的企鹅885 小时前
XML内容解析成实体类
xml·java·开发语言
梁下轻语的秋缘5 小时前
每日c/c++题 备战蓝桥杯(P1049 [NOIP 2001 普及组] 装箱问题)
c语言·c++·学习·蓝桥杯
BillKu5 小时前
Vue3后代组件多祖先通讯设计方案
开发语言·javascript·ecmascript
Python自动化办公社区5 小时前
Python 3.14:探索新版本的魅力与革新
开发语言·python