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

相关推荐
咔咔咔的9 小时前
3607. 电网维护
c++
无敌最俊朗@10 小时前
C++后端总览
开发语言
多喝开水少熬夜10 小时前
堆相关算法题基础-java实现
java·开发语言·算法
7澄110 小时前
Java 集合框架:List 体系与实现类深度解析
java·开发语言·vector·intellij-idea·集合·arraylist·linkedlist
mit6.82411 小时前
一些C++的学习资料备忘
开发语言·c++
Industio_触觉智能11 小时前
开源鸿蒙SIG-Qt技术沙龙成都站成功举办,产品方案展示
qt·harmonyos·openharmony·开源鸿蒙·sig-qt
Adellle11 小时前
Java中同步和异步的区别,以及阻塞和非阻塞的区别
java·开发语言
闲人编程11 小时前
用Python分析你的Spotify/网易云音乐听歌数据
开发语言·python·ai·数据分析·spotify·网易云·codecapsule
Js_cold11 小时前
(* MARK_DEBUG=“true“ *)
开发语言·fpga开发·debug·verilog·vivado
上去我就QWER11 小时前
深入解析Qt中的QDrag:实现灵活的拖放交互
c++·qt