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

相关推荐
zh_xuan20 分钟前
c++ 单例模式
开发语言·c++·单例模式
老胖闲聊1 小时前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1181 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
曹勖之1 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
豆沙沙包?2 小时前
2025年- H77-Lc185--45.跳跃游戏II(贪心)--Java版
java·开发语言·游戏
军训猫猫头2 小时前
96.如何使用C#实现串口发送? C#例子
开发语言·c#
liuyang-neu2 小时前
java内存模型JMM
java·开发语言
利刃大大3 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
喜欢吃燃面3 小时前
C++刷题:日期模拟(1)
c++·学习·算法
SHERlocked933 小时前
CPP 从 0 到 1 完成一个支持 future/promise 的 Windows 异步串口通信库
c++·算法·promise