QT中QString与string的转化,解决中文乱码问题

QtQString数据类型转换(整理) QString数字之间的转换,QStringQDateTime之间的转换,QStringQByteArray之间的转换,QStringchar * 之间的转换。 阅读详情

在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:</span>

QTextCodec *codec = QTextCodec::codecForName("UTF-8");

QTextCodec::setCodecForTr(codec);

QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);


我使用的是QT5,已经不支持如此设置了,而且这样设置也会存在很多问题。 其实,还有更简单的方法,就是使用我写的如下两个函数:

QString str2qstr(const string str)
{
	return QString::fromLocal8Bit(str.data());
}

string qstr2str(const QString qstr)
{
	QByteArray cdata = qstr.toLocal8Bit();
	return string(cdata);
}

在需要使用中文QString时,先用string写一个,然后转过去就可以啦,例如:

qlabel->setText(QString(str2qstr(string("支持中文"))));


Qt使用中文字符串乱码问题 我们在使用qt的时候有时候会遇到打印中文字符串的时候出现中文乱码问题,主要是由于QtQString字符串存储的方式是使用utf-8的编码方式,如果我们本地的文件是使用GBK方式的编码再使用中文字符串的话就会出现打印乱码的情况。 阅读详情

相关推荐

从ViT到CLIP:OpenAI如何用4亿张图‘教会’AI看懂世界?一次讲透对比学习Prompt工程

本文深入解析OpenAI的CLIP模型如何通过4亿图文对的对比学习实现跨模态理解,详细探讨了对比学习、数据构建、模型架构及Prompt工程等核心技术。CLIP利用Transformer架构和精心设计的Prompt模板,在Zero-Shot分类、图像检索等场景展现出强大能力,为多模态AI应用开辟新方向。

weixin_27027459的博客 358

C++ Qt QStringstring乱码的处理方法

为了避免QString转换为std::string后出现乱码,我们可以使用QString的toUtf8()函数将QString转换为UTF-8编码的字节数组,然后再将字节数组转换为std::string。为了解决QString转换为std::string乱码问题,我们需要进行字符编码的转换。Qt提供了QString转换为std::string的几种方式,其中一种方法是使用QString的toUtf8()函数将QString转换为UTF-8编码的字节数组,然后再将字节数组转换为std::string

DevNinja的博客 1665

手把手拆解:储能电站如何实现‘孤岛运行’‘黑启动’?从SVPWM控制到无缝并网

本文深入解析储能电站的孤岛运行黑启动技术,从SVPWM控制策略到电网重构实战。通过详细的三环控制架构和黑启动五阶段技术路线,展示储能电站在电网故障时如何快速切换为独立电压源并实现电网重建。文章还探讨了虚拟惯量补偿、多站协同控制等前沿技术,为电力系统应急恢复提供关键解决方案。

weixin_30509393的博客 278

qstring中文支持

函数内添加 qin.setEncoding(QStringConverter::System); qout.setEncoding(QStringConverter::System); 不能在函数外全局声明,会报错

zeknes的博客 938

Qt编程问题之--源码中的中文

不知道大家是否曾经遇到过windows环境编译器vs2019下,源码中有汉字字符串常量时,编译报错:error: C2001: 常量中有换行符,源码类似如下: QStringList titles; titles<< "名称"; Qt6 + vs2019 64bit编译器:一般缺省已经处理好这种情况,至于为什么没有去研究。总之,Qt6+vs2019 64bit不会报错。 但是在Qt5.15及以下版本就会报错。网上有很多似是而非的解决方法,其实都治标不治本。解决方案其实很简

foxyz的专栏 1032

[转]QTQStringstring转化解决中文乱码问题

[转]QTQStringstring转化解决中文乱码问题

asdfgh0077的博客 133

QT6.8 自动识别文本文件的编码格式

Qt打开文本时自动检测文件编码并正确解析文件,通过检测文件头标志判断UTF-8、UTF-16LE/BE、GBK等格式,确保文本数据的正确读取。 自己定义个Skysonya类,可以检测文件编码格式,同时定义了文件打开和保存函数,附带程序关于信息显示函数。

汐彤工作室 1191

QtQStringstring中文乱码问题

但是由于很多程序员完全不考虑这三行代码是否有任何副作用,只要出现乱码就不分青红皂白的使用这三行代码,造成滥用,所以在Qt5中去掉了前两个函数。然而QString直接string相互转换会出现中文乱码问题,为此Qt4中提供了三条语句。那么应该如何解决中文乱码问题呢,答案当然是有的,在程序中定义如下两个方法即可。

weixin_45824067的博客 2342

qt6 QTextStream 中文输入输出乱码问题

//简单的一个复读机 QTextStream qin(stdin); QTextStream qout(stdout); while (true) { qout << qin.read (1); qout.flush (); } 输出结果乱码

LJYSCIENTIST的博客 4838

Qt中文乱码解决方法

Qt 一步到位解决中文乱码问题

qq_34962908的博客 1万+

qt - 文件

qt - 文件

L_fengzifei的博客 739

QString转std::string中文乱码

QString qstr=“qstr”; string str = null; str = qstr.toStdString();//出现中文乱码 //处理方法 str = string(qstr.toLocal8Bit());

weixin_44103773的博客 2964

openship.rar_modelofship_船舶 建模_船舶控制_船舶控制模型_船舶稳性

船舶的线性数学模型,可用于船舶建模,在研究控制和稳性有用

上一篇: 跨路由远程桌面连接的完整步骤
下一篇: VS2010应用程序的打包与图标设置
defineWL
博客等级 码龄12年 7粉丝 5原创
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值