QString 与中文问题】的更多相关文章

在论坛中漂,经常遇到有人遇到tr相关的问题.用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种: (2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包) 注意哦,如果你正在用tr包裹中文字符,却不属于(2b),那么,这是个信号: 你在误用tr 你需要的是QStr…
Qt版本:5.5.1 Qt的QString功能丰富,对非英语语言的支持也不是问题,但支持得不够直接.例如,像 ? 1 QString str("死亡使者赛维"); 这样直接用带中文的字符串进行构造,那么用QMessageBox显示str时将出现乱码.如果使用fromLocal8Bit.fromLatin1这样的函数,又依赖本地计算机的显示语言,所以它们不是好方法. 显式地使用宽字符(wchar_t)或UTF-8才是好方法. ? 1 2 QString str0(QString::fro…
原文请看:http://www.cnblogs.com/phoenixlaozhu/articles/2553180.html (更新:本文的姊妹篇Qt5与中文问题) 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码.而问题…
QString::QString 中文乱码 处理方法: 1. QString str = QString::fromLocal8Bit("中文"); // vs2008 vs2005 2. QString str = QString::fromLocal8Bit("中文"); //  gcc vs2003, 如源码是 GBK 编码(记事本中的 ANSI 编码) 3.QString str = QString::fromUtf8("中文");  …
源地址:http://blog.csdn.net/xcy2011sky/article/details/7168376 解决中文乱码,最好知道乱码是什么格式比如说:utf-8. 解决方案: 1.让整个应用程序支持中文: 在  QApplication a(argc, argv);后加上以下几句话即可.要包含头文件#include <QTextCodec>. QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"…
参考网址:http://blog.csdn.net/lfw19891101/article/details/6641785 (网页保存于:百度云CodeSkill33 --> 全部文件 > 来自__网页 > Qt5_for_Win > QString与中文问题__20151228_1432.rar) 1. 我的测试代码: void MainWindow::on_pushButton_clicked() { // ZC: char* 转为 Unicode(QString底层通过Uni…
原文请看:http://hi.baidu.com/dbzhang800/item/d850488767bdc3cdee083d43 题外话:何时使用 tr ? 在论坛中漂,经常遇到有人遇到tr相关的问题.用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种: (2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住…
转载于http://blog.chinaunix.net/uid-200142-id-4018863.html python的string和PyQt的QString的区别 python string和PyQt的QString的区别 以下在Python2.6和PyQt4.4.4 for Python2,6环境下讨论: Python中有两种有关字符的类型:Python string object和Python Unicode object.主要使用Python string object进行数据输入…
长期以来,很多人都清楚,一旦C++源码中直接使用了中文,这样的源码想要跨平台(I18N)会非常困难. 随着: Windows下:MSVC2010成为主流 Linux下:GCC升级到4.6 C++中的中文问题 才算有了一个比较优雅的.跨平台的Workaround. (本文讨论编译器范围:GCC4.6+, MSVC2010sp1+ .本文属于QString系列,但暂不涉及QString) C++ 中文问题 要在C++中正确使用中文,必须要了解下面两个概念: 源码字符集(the source char…
一个月前尝试写了一篇关于QStringLiteral,存盘时MoinMoin罢工了.吸取一点经验,还是写成短篇吧 可是,可是,QString不就是简简单单一个字符串么?能有什么可谈的.真的么... (本文范围:Qt4) 字符串比较 如果翻看Qt的源码,或者Qt的(正规一点)第三方库,我们很少看到这种代码: //QString myString if (myString == "dbzhang800") { } 取而代之的是 if (myString == QLatin1String(&…
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Unicode 码,每一个字符是一个 16 位的 QChar,而不是 8 位的 char,所以 QString 处理中文字符没有问题,而且一个汉字算作是一个字符. append() 和 prepend() append() 在字符串的后面添加字符串,prepend() 在字符串的前面添加字符串,如: Q…
刚进这个公司,以前没接触过http编程,所以这两天做了个小例子来熟悉http编程,有点晕..... 不过还是做出来了,虽然有点粗糙,总结一下这个小软件: 主要使用QNetworkAccessManager, QNetworkRequest, QNetworkReply来实现网络交互: get: QString orderAddress = QString("http://www.feiniu.com/item/%1").arg(orderID); QNetworkRequest req…
何处开始呢? 一旦在Qt程序中出现latin1字符集以外的字符,几乎大家无一例外的会用到 QTextCodec. 而不少网友不分青红皂白,一旦用到中文,就同时使用下面3条指令(其中textc 取为 gb18030 或 utf8,还有的会选用system). QTextCodec::setCodecForCStrings(textc); QTextCodec::setCodecForTr(textc); QTextCodec::setCodecForLocale(textc); 可是这3个东西有什…
QT 中将 QString 转化为 const char * 的问题 我开始的代码是这样的: QString qstr = "abcdef"; const char * cc = qstr.toAscii().constData(); 但是此时输出 cc 要么是空,要么是乱码的.而 strlen(cc) 的值比 6 小. 将代码改为 QString qstr = "abcdef"; QByteArray qba = qstr.toAscii(); const cha…
ZC: Win7x64 + Qt551(x86) + vs2013(x86) ZC: 问题:UTF-8 在源码文件中有中文时,有时会报编译错误:C2001 & C2143 分析: --> 于是,需要将源码文件 保存成“UTF-8 + BOM”格式 --> “UTF-8 + BOM”格式,自VS2005开始,字符串的编码方式 会转换成系统默认的编码方式 不一定与源码文件的编码方式相同... --> “UTF-8 + BOM”格式的源码中的 中文字符串 需要做特殊处理 ZC: 处理方…
关于qt中的tr()函数 在论坛中漂,经常遇到有人遇到tr相关的问题.用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他也开始用tr (2)另一类人,确实是出于国际化的需要,将需要在界面上显示的文件都用tr包起来,这有分两种: (2a) 用tr包住英文(最最推荐的用法,源码英文,然后提供英文到其他语言的翻译包) (2b) 用tr包住中文(源码用中文,然后提供中文到其他语言的翻译包) 注意哦,如果你正在用tr包裹中文字符,却不属于(2b),那么,这是个信号: 你在误…
QT 选择对话框简单示例 部分代码: pDialog->addSeparator(); QAction *pmb2 = pDialog->addAction(QString::fromLocal8Bit("选择对话框")); connect(pmb2, &QAction::triggered, [this](){ QMessageBox * mBox = new QMessageBox(this); mBox->setWindowTitle(QString::…
1.Qt Creator -> 工具 -> 选项 -> 环境 - >概要 -> 语言    Qt Creator本身界面的语言选择,与cpp文件编码无关,与可执行文件显示编码无关   重新打Qt Creator 此设置才能生效,这个唯一选择<Chinese> 2.Qt Creator -> 工具 -> 选项 -> 文本编辑器 -> 默认文件编码 决定cpp文件编码,不同平台下此设置要相同.如果不同,cpp文件会有好多乱码,且不能被编辑,但不…
原文请看:http://www.cnblogs.com/lexus/archive/2012/05/01/2478150.html QT牛博 QTextCodec中的setCodecForTr等终于消失了 (Qt5) - 1+1=2 - 博客频道 - CSDN.NET QTextCodec中的setCodecForTr等终于消失了 (Qt5) 分类: Qt5 Qt 2012-03-06 17:16 1191人阅读 评论(12) 收藏 举报 在Qt4中,国内很多新手都喜欢——不分青红皂白地使用如下…
1.  说明 在此说明一下IDE跟封装的之间的关系,他们之间本质上来说没有关系,是可以多对对的关系. Qt开发是个比较泛的概念,Qt是由很多一系列类组成的整体,就像boost里面也有很多的类,而boost是一个整体的概念.同样,MFC也是一个比较泛的概念,里面有很多类. 这三种都是所谓的编程或封装的类. visual studio是VC开发的一个IDE,eclipse似乎也可以作为VC开发的IDE.记事本也是个IDE,只是比较简陋.QtCreator也是个IDE. visual studio这个…
环境: QT4.8.5 for Windows(Qt Creator+MinGW) 一.写在前面: 1.深度:鉴于C/C++的功底还远远不足,个人主要精力还是学习C/C++,所以没打算继续深入研究Qt. 2.Why Qt:之前没做过界面相关的东西.也一直非常好奇,那么炫的界面怎么做出来的. 如今须要一个界面,也没人要求必须用微软的MFC,鉴于都要现学现用(也没人能够请教).而手边有一本半年前买的<C++ GUI QT4编程>(翻过前两章).于是决定上Qt. 3.内容:不涉及详细编码,在必要时会…
在VS中开发Qt5程序似乎成了我的一种习惯,因为觉得VS简直不能再溜了,不愧是"宇宙第一IDE". 所以在开发中难免会遇到中文显示乱码的问题,网上找到的很多方法都是类似于下面这样的: QStringLiteral("中文") 或者这样的: #pragma execution_character_set("utf-8") 还有这样的: QTextCodec * BianMa = QTextCodec::codecForName ( "GB…
一.Qt安装 qt离线安装地址:http://download.qt.io/archive/qt/ 参考教程:https://blog.csdn.net/u013934107/article/details/80712418 二.Qt环境搭建 Qt官网:https://www.qt.io/ 1.工程目录下创建3rdparty文件夹,并将Qt的依赖库拷贝进去 2.配置项目根目录的CMakeLists.txt文件,添加如下内容 cmake_minimum_required(VERSION 3.15)…
原文地址http://blog.csdn.net/dbzhang800/article/details/7542672?reload 两个月前,简单写过QTextCodec中的setCodecForTr等终于消失了 (Qt5) ,在Qt论坛上,不少用户都对去掉这两个函数表示特别的不了解.为什么会这样?我想多少能说明不少用户对C++中源码字符集和执行字符集的不太了解,从而造成对这种函数的依赖或误用. 今天,随着Change QString's default codec to be UTF-8 进…
QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) { QByteArray cdata = qstr.toLocal8Bit(); return string(cdata); } 搞定,亲测QString的tostdstring函数中文会出乱码…
原文请看:http://blog.csdn.net/dbzhang800/article/details/7542672 两个月前,简单写过QTextCodec中的setCodecForTr等终于消失了 (Qt5) ,在Qt论坛上,不少用户都对去掉这两个函数表示特别的不了解.为什么会这样?我想多少能说明不少用户对C++中源码字符集和执行字符集的不太了解,从而造成对这种函数的依赖或误用. 今天,随着Change QString's default codec to be UTF-8 进入Qt5的m…
在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:</span> [cpp] view plain copy QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecF…
引用:http://blog.sina.com.cn/s/blog_a7e2c7490101oatt.html QTextCodec *codec = QTextCodec::codecForName("GBK");//指定QString的编码方式 QString str=codec->toUnicode(con);//con可以是char*,可以是QByteArray.…
1.添加头文件 #include <QTextCodec> 2.用QTextCodec 设置格式转换 QByteArray barr; barr.insert(0,(char*)(pMsg->wParam)); QTextCodec *tc = QTextCodec::codecForName("GBK"); QString tmpQStr = tc->toUnicode(barr); this->ui.send_btn->setText(tmpQS…
QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(const QString qstr) { QByteArray cdata = qstr.toLocal8Bit(); return string(cdata); }…