Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接。例如,像

1
QString str("死亡使者赛维");

这样直接用带中文的字符串进行构造,那么用QMessageBox显示str时将出现乱码。如果使用fromLocal8Bit、fromLatin1这样的函数,又依赖本地计算机的显示语言,所以它们不是好方法。

显式地使用宽字符(wchar_t)或UTF-8才是好方法。

1
2
QString str0(QString::fromStdWString(L"数学分析"));
QString str1(QString::fromUtf8(u8"高等代数")); // C++11

UTF-8的字符串字面量是C++11的内容,如果你的编译器不支持它,可以用第一种方式。这样,不管本地的语言是什么,都是可以通吃的。

测试一下吧!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void MsgBox(const QString &s)
{
    QMessageBox::information(nullptr, QString::fromUtf8(u8"标题"), s, QMessageBox::Ok);
}
void MainWindow::on_pushButton_clicked()
{
    QString str0(QString::fromStdWString(L"数学分析"));
    QString str1(QString::fromUtf8(u8"高等代数"));
    QString str2(QString::fromUtf8(u8"ステンカラーのコート 【折式立领的外套】")); // 日文也不是问题
    QString s(QString::fromUtf8(u8"\r\n"));
    MsgBox(str0 + s + str1 + s + str2);
}

运行结果:

最后给出QString与std::wstring的相互转换。

从std::wstring到QString,用QString的静态成员函数QString::fromStdWString。它接受一个std::wstring类型的参数,返回对应的QString。

1
2
std::wstring str_STL(L"实变函数论");
QString str_Qt = QString::fromStdWString(str_STL);

从QString到std::wstring,用QString的成员函数QString::toStdWString。它返回一个std::wstring。

1
std::wstring str_STL = str.toStdWString();

转载于:https://www.cnblogs.com/hshy/p/10571951.html

qstring转string相关推荐

  1. QString与string的相互转换

    1.QString转换String string s = qstr.toStdString(); 2.String转换QString QString qstr2 = QString::fromStdS ...

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

    [转]QT中QString与string的转化,解决中文乱码问题 参考文章: (1)[转]QT中QString与string的转化,解决中文乱码问题 (2)https://www.cnblogs.co ...

  3. Qstring 和 String相互转换

    1.QString转换String string s = qstr.toStdString(); 2.String转换QString QString qstr2 = QString::fromStdS ...

  4. QString和string类型相互转换

    转自:http://blog.csdn.net/yang_hui1986527/article/details/5273805 在使用QT和C++进行开发的时候,由于两者的数据类型不完全相同,需要进行 ...

  5. Qt中QString转string中文乱码问题

    QString与string相互转换可以用如下方法: QString::toStdString(); QString::fromStdString(); 数字和QString互相转换: QString ...

  6. QString和string互相转换乱码处理

    转化与乱码处理 std::string cstr; QString qstring; //从std::string 到QString qstring = QString(QString::fromLo ...

  7. QString和String的介绍

    今天要说的是QString.之所以把QString单独拿出来,是因为string是很常用的一个数据结构,甚至在很多语言中,比如JavaScript,都是把string作为一种同int等一样的基本数据结 ...

  8. QString与std::string的相互转换

    QString与std::string的相互转换 原创 2014年07月07日 16:25:53 4011 [cpp] view plain copy //1 QString与int相互转换 QStr ...

  9. QString string char*互转

    1.QString 转 char * //QString转char* QString qStr = "让世界爱上中国造"; QByteArray qByteArray = qStr ...

  10. String和QString之间的转化----可避免出现中文乱码的现象

    String和QString之间的转化 经常因为QString和string的转化出现问题,而出现一些莫名其妙的错误. (适用于QT5) QString qstr; string str; str = ...

最新文章

  1. Li‘s 影像组学视频学习笔记(28)-ROI/病灶体积的计算、Li‘s have a solution and plan.
  2. 机器学习经典算法之线性回归sklearn实现
  3. python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解
  4. 第三周作业(三)WordCount
  5. python 操作excel神器_【转】多图+代码 | 详解Python操作Excel神器openpyxl的各种操作!...
  6. 算法不会,尚能饭否之栈
  7. 快速搭建企业级邮件系统iRedMail+Mysql+Postfix+php
  8. 存储总结——DASNASSAN
  9. Cadence Allegro PCB设计准备工作图文教程【入门篇1-3】
  10. 招聘笔试c语言题库,2014年腾讯校园招聘C语言笔试题含答案
  11. matlab中的yalmip工具箱 教程,yalmip工具箱及其教程。凸规划问题如何用yalmip工具箱优化?...
  12. 基于SSM实现台球厅计时收费系统
  13. 怎样快速生成一个动态二维码?动态个性二维码怎么做?
  14. Kmplayer硬件解码高清视频优化设置
  15. 利用Python库中的imageio生成GIF格式的动图
  16. 2010年终总结报告
  17. 转载 - Linux使用技巧锦集
  18. c语言 ZZ转字符串,C语言 字符串中的转义字符与字符串的长度 zz
  19. 痘痘标记的5种健康地图
  20. buffer pool详解(free链表+flush链表+lru链表)

热门文章

  1. Bootstrap入门学习(三)——简单项目
  2. Jay Simons谈Atlassian收购Trello
  3. CentOS 网络基础:(1)HostName和DNS
  4. Tigase组件 – 配置API
  5. OA办公系统需要专业的系统管理员
  6. AndroidGUI24:TabHost常用技巧
  7. npm构建vue项目
  8. Git学习收获(一)
  9. kafka 小案例【二】 --kafka 设置多个消费着集群
  10. cocos2dx中node的pause函数(lua)