在VS中编写Qt5涉及到的一点字符串问题
2024-10-08 16:48:43
在VS中开发Qt5程序似乎成了我的一种习惯,因为觉得VS简直不能再溜了,不愧是“宇宙第一IDE”。
所以在开发中难免会遇到中文显示乱码的问题,网上找到的很多方法都是类似于下面这样的:
QStringLiteral("中文")
或者这样的:
#pragma execution_character_set("utf-8")
还有这样的:
QTextCodec * BianMa = QTextCodec::codecForName ( "GBK" );
QMessageBox::information(this, "提示", BianMa->toUnicode("中文显示!"));
还有这样的:
QString::fromWCharArray(L"中文字符");
反正,我一般是这样的:
QString::fromlocal8Bit("汉字");
这么多方法里面,如果是在VS中开发,那就用下面这两种:
QString::fromWCharArray(L"中文字符");
QString::fromlocal8Bit("汉字");
如果,很要命的想在VS和Qt creator中同时开发,那就用:
QString::fromlocal8Bit("汉字");
然后,还涉及到string转QString,就是
QString::fromStdString(s);
但是,如果你要QString转std::string的话,那可以直接用它:
QString::fromStdString(string);
但是,有时候很要命,会有汉字,所以就用它会比较保险:
//std::string to QString
QString::fromlocal8Bit(string.data())
//QString to std::string
QString str = "中文";
str.toLocal8Bit().data()
QString还提供了特别好用的数字与字符互转:
QString::number(数字);
QString str ="2";
str.toInt();//其他类型类似
辛苦最怜天上月,一昔如环,昔昔都成玦。
若似月轮终皎洁,不辞冰雪为卿热。
无那尘缘容易绝,燕子依然,软踏帘钩说。
唱罢秋坟愁未歇,春丛认取双栖蝶。
-- 纳兰性德 《蝶恋花·辛苦最怜天上月》
最新文章
- PowerPoint基础
- C#中XML和json互相转换
- xmind的第六天
- Docker-网络基础配置
- UIKit各类概述
- 用了OneAPM CT,宕机早知道!
- bzoj3767 A+B Problem加强版
- 阿里云服务器上架设apache php mysql 环境
- 软件測试系统文章(文件夹&;amp;链接在此)
- Spark2.0学习(三)--------核心API
- R 544
- jdk8- list操作
- 构造&;析构
- 从零开始学习html(十三) CSS代码缩写,占用更少的带宽
- [日志log] 常用log日志记录方式对比和详解
- 相同类型的对象不能互相转换:java.lang.ClassCastException: com.anhoo.po.UserPo cannot be cast to com.anhoo.po.UserPo
- springboot date接收参数
- C语言命令行解析函数:getopt/getopt_long
- 6th Alpha阶段的postmortem报告
- 对HashMap的理解(二):高并发下的HashMap