VS+QT中文乱码问题】的更多相关文章

最近项目中遇到不少的Qt中文乱码的问题,主要原因是客户的需求比较多,Qt版本有用4的版本的也有用5的版本,并且还有windows与linux跨平台的需求.经常出现个问题是windows的解决了,源代码放到linux上编译不通过或者中文会乱码,本文主要是得出一个解决方案能解决Qt的中文问题,并支持不同平台与不同版本.下面我们通过下列场景中的问题来找寻答案: 场景1:Qt版本: Qt5.1.0_VS2012操作系统: win7 CPP文件编码: UTF8—无BOM格式CPP部分代码如下: QText…
文章来源:http://blog.csdn.net/brave_heart_lxl/article/details/7186631 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四…
一.Qt环境设置 文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.Windows环境下,Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码:默认编码:System(简体中文windows系统默认指的是GBK编码,即下拉框选项里的GBK/windows-936-2000/CP936/MS936/windows-936) 二.编码知识科普Qt常见的两种编码是:UTF-8和GB…
一.Qt环境设置 文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.Windows环境下,Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码:默认编码:System(简体中文windows系统默认指的是GBK编码,即下拉框选项里的GBK/windows-936-2000/CP936/MS936/windows-936) 二.编码知识科普Qt常见的两种编码是:UTF-8和GB…
  QT国际化支持 Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性.Qt本身提供的linguist工具,用来实现翻译过程十分方便.MFC中利用资源DLL切换资源,或使用多个RC文件进行不同语言版本编译等方法都十分麻烦,如果你曾经使用过MFC,QT解决多语言问题的便捷性绝对会让你感觉是一种享受.本文讨论以下几个方面内容: 1.  QT中解决中文乱码的方法: 2.  QT中实现国家化支持. 3.  对话框实现多语言 一 一.       中文乱码 1.  在程序中…
qt解析tcp通信传来的xml时,中文有乱码 解决方法: 头文件加入 #include <QTextCodec> QByteArray tmpQBA = m_pSocket->readAll(); QTextCodec *tc = QTextCodec::codecForName("GBK"); QString tmpQStr = tc->toUnicode(tmpQBA); //例如以下转换会导致中文乱码 QString tmpQStr = QVariant(…
源地址:http://blog.csdn.net/xcy2011sky/article/details/7168376 解决中文乱码,最好知道乱码是什么格式比如说:utf-8. 解决方案: 1.让整个应用程序支持中文: 在  QApplication a(argc, argv);后加上以下几句话即可.要包含头文件#include <QTextCodec>. QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"…
首先,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码.而问题一般都出在很多用户对自己当前的编码没太多概念, 于是 一个简 单的 Qt 程序 下面这个小程序,估计大家会感到比较亲切.似乎有相当多的中文用户尝试写过这样的代码: #in…
刚开始学习qt,经常会遇到中文输出乱码,在网上找了解决办法有下面这个两个办法QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));或QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));我试过发现不行,然后翻阅书,发现这行代码可以在主函数里添加一行代码: QTextCodec::setCodecForTr(…
首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码.而问题一般都出在很多用户对自己当前的编码没太多概念, 于是 一个简 单的 Qt 程序 下面这个小程序,估计大家会感到比较亲切.似乎有相当多的中文用户尝试写过这样的代码: #i…
由于我毕设的界面是用Qt做的,之前没怎么接触过Qt,所以实现过程中遇到不少小问题,头一个就是这个. 现如今宝宝将其记录下来,供同样有需要的同学或者自己以后方便查阅. 1.所有文件编码格式须一致 不统一的话,很可能出现部分中文显示正常,部分是乱码的情况.这个我是让男票用editplus统一修改了编码格式.文件只要是自己生成的,一般都是一样的,但是也不排除某个cpp文件借鉴他人导致格式不统一.至于如何用editplus修改文件的编码格式,网上资料也不少,大家百度一下即可. 2.添加代码和头文件 我添…
1.使用QStringLiteral把所有中文包起来 2.#pragma execution_character_set("utf-8")…
在程序中直接使用中文,需要在程序中加入以下代码: #include <QTextCodec> int main(int argc, char **argv) { QApplication app(argc, argv); QTextCodec *codec = QTextCodec::codecForName("utf8"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(code…
http://blog.csdn.net/brave_heart_lxl/article/details/7186631#…
1. 在main函数中创建完 QApplication对象后马上添加 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); 如果以上的编码方式不行, 可以换其他编码方式尝试…
转载:http://bbs.csdn.net/topics/390750169 VS2012 中文乱码 1.方法一: 包含头文件 #include <QTextCodec> ....... QTextCodec *codec = QTextCodec::codecForLocale();//解决中文乱码 QString title = codec->toUnicode("完成"); QString info = codec->toUnicode("接收…
本文主要记录了Qt控制台出现中文乱码的问题,一下列出了集中编码设置的方法.以前用VC6.0写的一个贪吃蛇的游戏,今天把源文件拿出来在Qt上面运行,出现中文乱码的问题.以前也遇到过,没想到小小的乱码,折腾了1个小时左右. 编码的发展简史 第一台计算机诞生不久,就有了ASCII编码,后来因ASCII不能满足现下的字符,就由ISO组织扩展成为ISO-8859-1.计算机的普及,各个国家都有了自己的编码,目的可以在计算机上可以显示它们的语言.比如GBK编码来表示中文.但这也产生了编码不一致的问题,后来u…
1.GB2312.GBK和UTF-8三种编码的简要说明 GB2312.GBK和UTF-8都是一种字符编码,除此之外,还有好多字符编码.只是对于我们中国人的应用来说,用这三种编码 比较多.简单的说一下,为什么要用编码,在计算机内,储存文本信息用ASCII码,每一个字符对应着唯一的ASCII码.最初计算机是由美国发明的,他们用的是英文字符使用ASCII很好表示.但我们中国的汉字编码就稍有不同,但原理相同,即都要求每个字符要唯一对应一个标识码,因此国家制定了汉字的字符编码标准:GB2312.GBK等.…
总结: 1. qt输出中文乱码原因分析 qt的编程环境默认是utf-8编码格式(关于编码见下文知识要点一): cout << "中文" << endl; 程序运行,程序并不认识ANSI,UTF-8以及任何其他编码.系统只知道处理你给它的字符的二进制表示. 关于  "中""文" 的3种编码二进制内容: ANSI(GBK): 0xd6d0  0xcec4 UTF-8: 0xe4b8ad 0xe69687 Unicode: 0x…
qt creator修改程序编码(解决中文乱码问题)的方法 qt creator修改程序编码的功能有几处. 1.edit - select encoding 选择载入(显示)编码和储存编码,其中GB2312和UTF-8是常用编码方式. 这种方法主要是修改已经建立的程序文件. 2.tools - options - text editor - behavior - file encodings 这主要针对新建的程序文件和工程运行时的编码情况. 3.在main()函数内的添加代码,利用QTextCo…
一.混合编程环境搭建---依据我的情况,分成了4个部分: 1:破解matlab,因为matlab破解不完全,编译器不能使用,会出错.(参考https://blog.csdn.net/a125930123/article/details/53508097) 三个文件相应覆盖,但license文件在安装路径里面没有找到,就在help里面找到active..然后导入lisence文件. 2.打包.m函数,形成.h .lib .dll文件(参考https://blog.csdn.net/r1254/ar…
一. Qt 4 乱码问题 解决方案 1. 在Qt 中 快捷菜单选项功能中 Edit(编辑)  --> Select Encoding...(选择编码) 选择载入(显示)编码和储存编码,要解决中文乱码问题,选择 GB2312和UTF-8常用编码方式 就可以 2.在 Qt 快捷菜单选项中依次选择 Tools --> Options --> Text Editor --> Behavior --> File Encodings 选择默认编码方式 UTF-8 或 GBK(gbk) 字…
在QT中,使用QString输出到控件进行显示时,经常会出现中文乱码,网上查了一圈,发现大部分都是针对QT4增加4条语句:</span> [cpp] view plain copy QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecF…
如果编译器在支持C++11的情况下,我们可以使用u8"XXXX" 如:QString str = u8"我是中文"; 这样就解决了中文乱码的问题,使用UTF-8编码 我经常在代码中使用QStringLiteral("中文")…
在使用webkit的时候显示中文乱码,同时出现警告 QFont::setPixelSize: Pixel size <= 0 (0) 后来发现是插件的问题. 将安装目录的plugin/codec这个目录复制到Debug下.就是程序所在的目录即可 可以在main函数中加入下面几句话 QTextCodec *codec = QTextCodec::codecForName("System"); //获取系统编码 QTextCodec::setCodecForLocale(codec)…
DEBIAN下中文显示 一.首先检查LOCALE情况 说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在. 1.挂载ISO文件包,前8个ISO包就可以(这里不在讲述). 2.启动终端 #apt-get install locales 3.重新配置LOCALE #dpkg-reconfigure locales 在所有的语言包选择en_US.ISO-8859-1和zh_CN.GBK.其他en_US和zh_CN打头的也选上.然后选择zh_CN.GBK为默认的L…
问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QOCI8 QOCI QODBC3 QODBC QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will…
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰 这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QStringLiteral来修饰,实在麻烦后来有找到了个方法第二种:在头文件申明中加上#pragma execut…
QString::QString 中文乱码 处理方法: 1. QString str = QString::fromLocal8Bit("中文"); // vs2008 vs2005 2. QString str = QString::fromLocal8Bit("中文"); //  gcc vs2003, 如源码是 GBK 编码(记事本中的 ANSI 编码) 3.QString str = QString::fromUtf8("中文");  …
中文乱码有两个环节会出现 第一,从请求体中获得的数据 从请求体中获得的数据要为其进行编码,默认为ISO-8859-1,所以在使用getParameter()时先调用setCharacterEncoding("utf-8")方法对数据进行编码.. 这仅仅对post有效,对get时,因为在生成URL的时候已经对其编码,所以要使用String的构造方法对其重新编码,new String(str.getBytes("iso-8859-1"),"utf-8"…