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

相关推荐
凯子坚持 c10 分钟前
C++ 连接 Redis:redis-plus-plus 安装与使用入门指南
java·c++·redis
正在走向自律13 分钟前
Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
开发语言·数据库·python·ubuntu·kingbasees·ksycopg2
草莓熊Lotso14 分钟前
PyCharm 从入门到高效:安装教程 + 快捷键速查表
开发语言·ide·经验分享·笔记·其他
半桔18 分钟前
【Linux手册】管道通信:从内核底层原理到使用方法
java·linux·服务器·网络·c++
序属秋秋秋37 分钟前
《C++进阶之STL》【set/map 使用介绍】
开发语言·c++·笔记·leetcode·stl·set·map
apocelipes1 小时前
C++20新增属性[[no_unique_address]]详解
c++·性能优化
澡点睡觉1 小时前
【golang长途旅行第38站】工厂模式
开发语言·后端·golang
Dxy12393102161 小时前
Dockerfile文件常用配置详解
开发语言·docker
MATLAB代码顾问1 小时前
MATLAB可以实现的各种智能算法
开发语言·matlab
十五年专注C++开发1 小时前
cargs: 一个轻量级跨平台命令行参数解析库
linux·c++·windows·跨平台·命令行参数解析