Qt中QString转string中文乱码问题

您所在的位置:网站首页 qt写中文乱码 Qt中QString转string中文乱码问题

Qt中QString转string中文乱码问题

2023-06-09 21:47| 来源: 网络整理| 查看: 265

Qt中QString转string中文乱码问题_shaomingshan_的博客-CSDN博客

QString与string相互转换可以用如下方法:

QString::toStdString(); QString::fromStdString();

数字和QString互相转换:

QString::number(); //数字转QString,括号里填数字 toInt(); //QString转数字 qstring.toInt();

然而QString直接与string相互转换会出现中文乱码问题,为此Qt4中提供了三条语句

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); //↑这两个函数在QT5中已被去掉 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

但是由于很多程序员完全不考虑这三行代码是否有任何副作用,只要出现乱码就不分青红皂白的使用这三行代码,造成滥用,所以在Qt5中去掉了前两个函数

那么应该如何解决中文乱码的问题呢,答案当然是有的,在程序中定义如下两个方法即可

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3