#pragma execution_character_set的意义】的更多相关文章

就是设置执行字符集,指示char的执行字符集是UTF-8编码.如果源文件中出现中文,必须要设置为 #if _MSC_VER >= 1600        #pragma execution_character_set("utf-8")  #endif 另外Qt5中关于中文的建议解决方案是: 1.保证源程序源码文件是UTF-8,然后用以上预处理命令 2.不用保证源码文件是UTF-8,但是源文件中出现中文用QStringLiteral这个宏来包含起来,那么也不会乱码 referenc…
升级到Qt5.X之后,原先解决的Qt显示中文乱码的方法突然不适用了,找了很多方式来解决这个问题第一种:在公司代码里看到的方法,先将对应的cpp文件用windows自带的记事本打开,另存为UTF-8格式,然后在代码中,遇到中文字符,使用QStringLiteral("中文")进行修饰 这种方式每次新建一个class就要切出去用记事本编辑一下实在麻烦,而且每个中文字符串都要用QStringLiteral来修饰,实在麻烦后来有找到了个方法第二种:在头文件申明中加上#pragma execut…
VC2010增加了“#pragma execution_character_set("utf-8")”,指示char的执行字符集是UTF-8编码. VS2010 设置 字符编码: “文件”->“高级保存选项” 里面设置编码试试... 虽然文件时UTF8但是编译的时候不支持UTF8,现在VS2010SP1(记得一定要打上SP1补丁,VS2012也行)以上,然后再源文件中写上 #pragma execution_character_set("utf-8") 可以指…
预编译加速编译 QT也可以像VS那样使用预编译头文件来加速编译器的编译速度.首先在.pro文件中加入: CONFIG += precompiled_header 然后定义需要预编译的头文件: PRECOMPILED_HEADER = pch.h 其中pch.h头文件即为自定义的预编译头文件. 指定临时文件生成目录,使项目文件夹更干净 QT默认情况下把所有的编译中间文件都生成到debug和release文件夹里.可以在.pro文件中加入: MOC_DIR = tmp/moc RCC_DIR = t…
Cocos2d-x默认字符串常量编码都是UTF8的,而Windows中的VC默认都是跟系统相同,比如简体Windows是GB2312或者GBK.繁体就是BIG5编码.而我们大多数中国人用VC编译出来的字符串常量也就是GBK编码的字符串.在Cocos2d-x界面上绘制的时候它是不知道的,只会认为这个是UTF8字符串,结果就出现了乱码.解决方式也很简单.找个头文件加入下面的代码 #ifdef WIN32   inline std::wstring AnsiToUnicode(const char*…
前些日子漫无目的地刷着朋友圈,突然一个ID从字丛中闯入我的眼睛--"某&字"(为保护当事人隐私,此处用'某''字'代替),浸淫于计算机而产生的直觉告诉我,这是一个有值的表达式,这位姑娘用这个表达式当ID,那她这ID的值,到底是啥呢? 一.计算机存储汉字的方法--汉字编码 话说在计算机中,姑娘们的照片和她们的ID本质上都一样,都是冷冰冰的二进制0和1.既然都是一个bit,那就有了位操作求值的--咳咳--"科学依据". 与和英文打字键盘完全兼容的拉丁字母不同,输…
Qt事件机制 Qt程序是事件驱动的, 程序的每个动作都是由幕后某个事件所触发.. Qt事件的发生和处理成为程序运行的主线,存在于程序整个生命周期. Qt事件的类型很多, 常见的qt的事件如下: 键盘事件: 按键按下和松开. 鼠标事件: 鼠标移动,鼠标按键的按下和松开. 拖放事件: 用鼠标进行拖放. 滚轮事件: 鼠标滚轮滚动. 绘屏事件: 重绘屏幕的某些部分. 定时事件: 定时器到时. 焦点事件: 键盘焦点移动. 进入和离开事件: 鼠标移入widget之内,或是移出. 移动事件: widget的位…
用Qt实现一个简单的记事本: #include "helloqt.h" #include <qfiledialog.h> #include <qfile.h> #include <qmessagebox.h> #include <qtextstream.h> #include <qdebug.h> //#if _MSC_VER >= 1600 //#pragma execution_character_set("…
Tools-Options-Text Editor-Behavior-File Encoding-Default encoding:UTF-8 Tools-Options-Text Editor-Behavior-File Encoding-UTF-8 BOM:Add If Emcoding Is UTF-8 在代码中添加: #pragma execution_character_set("utf-8")…
在QT4 中,要显示中文,都是要这样写: #include <QTextCodec> QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 而在QT5中,取消了setCodecForTr 这个静态方法,所以不能再那么写了. 在QT5中,显示中文字符,只要再有中文字符的文件最上地方加上一句: #pragma executio…
1.开发环境:安装Qt5.3.2(离线安装包安装):VS版本为:2010 SP1Rel:源代码默认保存格式为GB2312. 2.输出乱码的代码 #include <QtCore/QCoreApplication> #include <QRegularExpression> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString namePattern("人员状态表-(\\D+)-…
编译环境与开发流程 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具.前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题.后一种是Qt的官方IDE,智能提示与调试功能不如VS强大,但是是跨平台的IDE,其QtDesigner设计UI界面操作比较方便,并且由于是QT官方的IDE,对编码等支持都比较好,里面集成了Qt的帮助文档.不得不说Qt的帮助文档做的是非常好的,集成进QtCre…
QT4 : QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); QT5: #if defined(_MSC_VER) && (_MSC_VER >= 1600) #pragma execution_character_set("utf-8") #endif 详见:http://blog.163.com/qimo601@126/blog/static/158220932014…
所谓“右键菜单”,我们可以这样来看:右键+菜单.所以我们可以定义一个菜单,然后重写鼠标点击事件,令菜单在鼠标右击的时候弹出来.这种方法是可以的,但是Qt提供了一种专门用于右键菜单的方法,且看下面这个属性: Qt::ContextMenuPolicy 通过函数setContextMenuPolicy()来设置一个widget上面显示的菜单的属性. 1.Qt::DefaultContextMenu 这个属性的默认值是Qt::DefaultContextMenu,此时需要调用函数contextMenu…
题目大意 给定国际象棋8x8棋盘上三个起始点,三个骑士分别从三个起始点开始移动(骑士只能走日字,且骑士从任意一点出发可以走遍整个棋盘).现要求三个骑士汇聚到棋盘上某个点,且使得骑士到达该点所移动的次数总和最小.求该最小移动次数. 题目连接:骑士问题 题目分析 典型的搜索,最短路径可以使用BFS.骑士数只有三个,因此可以求出每个骑士到达棋盘上所有点的移动的次数,再遍历一遍棋盘,求出最小次数和. 实现 #pragma once #pragma execution_character_set("utf…
题目大意 给出一个字符串(长度<=1000),字符串中的字符均为ATCG中的某一个.给出一个数字K,通过更改字符串中的某些字符,可以使得字符串的前K个字符形成的子串和最后K个字符形成的子串相同,求出最少更改的字符个数. 分析 理解题意,画图之后,仿佛是KMP的结果,但是这和KMP没啥关系...画图分析之后,知道问题应该分情况讨论:记 len 为字符串的长度,result为最少更改的字符个数. (1) len >= 2*K     两个子串中间没有重合,直接进行比较相应位置上的字符,不同resu…
题目大意 给出一棵树,其中每两个节点都可以形成一个路径(要求路径中的边只能走一次),求出所有路径中的长度最大值. 分析 树形结构,很容易想到递归,但为了节省时间,要考虑保存中间状态.于是,考虑使用记忆化搜索(也就是树形动态规划). 保存状态 dp[i][2],其中dp[i][0]表示以i为根的子树中路径的两个端点均不位于i的路径的最长值,dp[i][1]表示以i为根的子树中有一个端点位于i的路径的最长值.然后进行状态推演, dp[root][1] = 1 + max(dp[child][1]);…
题目大意 给出一棵二叉树的前序和中序遍历结果,求出后序遍历的结果.保证二叉树中节点值均不相同. 分析 通过前序和中序遍历的结果,我们可以构建出二叉树,若构建出二叉树,则后序遍历的结果很容易求出(当然递归方法很容易).主要是二叉树的构建.     二叉树类型非常适合用递归进行求解,所以考虑通过递归的方式来建立二叉树.由前序和中序遍历性质可知,前序遍历的第一个值就是二叉树中根节点的值,因此可以将之作为根节点,然后从中序遍历结果中找到对应的值(保证树中所有节点值均不相同)所在的位置A,则A左边的就是A…
c++程序中涉及到中文字符的输入输出以及其他操作经常会出现乱码.乱码主要是由于程序的源文件编码.可执行文件编码以及程序运行环境的编码不匹配导致.比如,c++源程序文件编码为GB18030, 在源程序中有一中文窄字符串常量,程序运行时输出该字符串常量,运行环境的系统编码为UTF8时,就会输出乱码. 一.程序相关的编码 1.程序源文件编码     程序源文件编码是指保存程序源文件内容所使用的编码方案,该编码方案可在保存文件的时候自定义.     通常在简体中文windows环境下,各种编辑器(包括v…
目录 第1章源代码文件    1 1.1 研究思路    1 1.2 实验结果    3 1.3 #pragma setlocale    4 1.4 /source-charset    5 1.5 使用UTF-8字符串    6 1.5.1 /execution-charset    6 1.5.2 #pragma execution_character_set    7 1.5.3 u8    7 1.5.4 /utf-8和/validate-charset    8 1.6 总结    …
在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测试编译器对UTF-8源码文件兼容性,我编写了这样的一个测试程序—— //#if _MSC_VER >= 1600 // VC2010 //#pragma execution_character_set("utf-8") //#endif #include <stdio.h>…
试验1: #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif #include <QtWidgets/QApplication> #include <QtWidgets/QLabel> #include <QtCore/QObject> int main(int argc, char *argv[]) { QApplication a(argc, argv);…
Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual Studio(以下简称VS)默认情况下使用GBK(GB2312)作为字符的编码方式,在Windows中默认兼容良好. 但是市面上多数国外软件及Linux软件都只兼容UTF-8 without signature(无DOM类型),在其他软件中打开这些文本会出现乱码. 具体的编码原理可以参考这篇文章http…
Qt开始默认是utf-8,而VS2013默认程序编码为gb2312: 这样就会发现使用中文的时候乱码. 一般有二种解决方案: 1.在使用中文的时候,使用QTextCodec QTextCodec *gbk=QTextCodec::codecForName("gb2312"); QString str=gbk->toUnicode("中文"); 这样使用起来的比较繁琐,推荐使用第二种 2.改"Microsoft Visual Studio 12.0\V…
源地址:http://www.cnblogs.com/wangqiguo/p/4625611.html 阅读目录 编译环境与开发流程 QT项目的构成及原理 QT中的布局 QT中的通用控件 QVariant 类型 QComboBox控件 QTableWidget控件 QTabWidget控件 QWebview控件 使用QSS 编码问题 QT的内存管理 QT的信号槽 QT中绘图 QT的线程 QT中使用第三方的dll QT中为控件添加右键菜单的方法 结束语 回到顶部 编译环境与开发流程 开发QT有两种…
1.将main.cpp改成utf-8编码,方法是点击main.cpp,然后选择菜单文件->高级保存选项.[所有源码都要转换成uft-8] 2.在你的main函数里,设置如下代码,完美解决qt5的中文乱码 MSC_VER是MSVC编译器的内置宏,定义了编译器的版本.下面是一些编译器版本的_MSC_VER值 MS VC++ 10.0 _MSC_VER = 1600  [VC2010] MS VC++ 9.0 _MSC_VER = 1500   [VC2008] MS VC++ 8.0 _MSC_VE…
VisualStudio 2010 SP1环境 1.设置string默认编码为utf8,只需要在文件头部加入以下代码 #pragma execution_character_set("utf-8") //默认使用UTF8 2.debug提示窗口显示utf8,打开C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\autoexp.dat文件找到第412到413行,原文如下: std::…
前沿:刚刚结束了NJCTF,做出来的题目很少. 1,----非常简单的misc , check QQ ,直接在QQ群可以看到发布的flag. 2,konck----hint:韩琛截获了一张纸条,突然记起来记录到房间里有人敲桌子,先下载附件,我们解压可以看到两个txt文件夹,刚看到这个题目的时候,受到题目的影响,以为是摩斯密码,后来试了好几遍都失败了,所以不是摩斯密码,后来又对比着看,发现这个一个txt文件(...._....._.._...._..._....._...._..._..._...…
ActiveX.pro #------------------------------------------------- # # Project created by QtCreator 2018-01-19T09:37:39 # #------------------------------------------------- # Qt shared QT_CI_JENKINS_HOME=$$(JENKINS_HOME) !isEmpty(QT_CI_JENKINS_HOME) { me…
Qt 开发 MS VC 控件终极篇 1. 使用 MSVC2015 通过项目向导创建 Qt ActiveQt Server 解决方案 项目配置:以下文件需要修改 1. 项目属性页->项目属性->常规->目标文件扩展名 2. 项目属性页->项目属性->链接器->所有选项->输出文件 *.dll 修改为 *.exe 文件 3. 项目属性页->项目属性->常规->配置类型 生成文件 修改为 *.exe 2. 新建 main.cpp 源文件添加以下内容 m…