1,VC中查询所有含中文字符串

使用正则表达式,查询内容为:

(".*[\u4E00-\u9FA5]+)|([\u4E00-\u9FA5]+.*")

这样,就可以把代码中的中文都查询出来.对处理QT5中的中文问题,很有帮助.

2,VC环境下,QT5中文的处理

VC环境下,提供两种编码文式,UNICODE,和多字节字符集,而QT5中使用的字符集为UTF-8,要正确处理QT5中的中文情况,要注意以下几点:

A,QT5内部都是UTF-8编码在处理,不需要转换了,一个典型的问题,就是中文目录的问题,所有通过QT5获取的中文目录本身就是UTF-8格式,系统可以识别,不需要像QT4那样,需要转换成本地编码方式.静态字符串目录的转换,与QT5中文字符串的处理一样.

B,VC下静态字符串如果含有中文的话,如果是多字节字符集,本人测试以下三种情况有效:

QString str=QStringLiteral("测试");

QString str=QString().fromLocal8Bit("测试");

QString str=QString().fromUtf16(L"测试");

C,QT5与其他非QT5库的字符串转换

QString转char*:QString().toLocal8Bit();

QString转wchar*:QString().toUtf16();

如果不进行这样的转换,在非QT5库中得到的,就是乱码.

以上,QT5所遵循的原则就是,进入QT5的字符串,无论是哪种编码方式,都得转成UTF-8(QT5默认),从QT5出来的字符串,需要根据情况来处理.

本人测试了把C++代码文件转成UTF-8编码格式,希望统一QT5的编码处理,就像平时一样,不需要转换,但是没有成功,可能是我的测试方法不正确,也可能是VC自己的原因.

在网上查资料,QtCreater中,把C++代码文件的编码方式改成UTF-8,就没有编码转换的问题.本人没有测试过,因为对些不熟悉,一直用VC.

如果这种方式是正确的,那可能就与VC的编码处理方式有关吧.

如何在VC中查询中文,及QT5的中文处理的更多相关文章

  1. 如何在MySQL中查询每个分组的前几名【转】

    问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门 ...

  2. 如何在VC++ 中调试MEX文件

    MEX文件对应的是将C/C++文件语言的编写之后 得到的相关文件加载到Matlab中运行的一种方式, 现对于Matlab 中的某些程序运行效率而言, C/C++ 代码某些算法的领域上面执行效率很高,若 ...

  3. 如何在mysql中查询每个分组的前几名

    问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等.  在orcale等数据库中可以使用partition 语句来解决,但在MySQL中就比较麻烦了.这次翻译的文章就是 ...

  4. 如何在ORACLE中查询某一用户下所有的空表

    先分析表 select 'analyze table '||table_name||' compute statistics;' from user_tables; 把查询结果依次执行 把所有表分析一 ...

  5. 如何在Oracle中 查询一个表被其他数据库对象引用[z]

    这两天老大让我再oracle中把要替换的表被其他对象引用之处找出来,整理一份表,接到这个任务,我是一脸懵逼,怎么找?大海捞针么?问同事.查资料,自己研究,最后整理一下仅供大家参考,同时以备将来回顾.本 ...

  6. 如何在MySQL中查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  7. 如何在Windows中查询证书颁发机构已颁发的证书

    有时候需要看一下证书颁发机构已经颁发出去的证书,看看某个用户或者某个计算机获取过的证书有哪些.通常可以在证书颁发机构的MMC中查看.对于测试环境或者刚开始用的CA来说,这样查看挺简单的.但是对于用了一 ...

  8. 如何在VC中显示透明背景位图

    简单的调用系统API. Windows NT/2000/XP: Included in Windows 2000 and later.Windows 95/98/Me: Included in Win ...

  9. VC++中全局变量的问题(转)

    全局变量一般这样定义:1.在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt:这样就可以用了. 2.在stdafx.cpp中加入:int my ...

随机推荐

  1. MySQL row模式binlog复制原理

    http://www.360doc.com/content/14/1107/14/12904276_423333021.shtml

  2. Android 中屏幕点击事件的实现

    在Android中如何用代码触发按钮点击事件?我想要触发代码执行按钮点击.实现对于单击按钮事件的模拟,触发单击按钮进入另一个界面. 就是声明一下什么moonlightcheese被声明了:在andro ...

  3. HDU5045-Contest(状压dp)

    题意: 有n个学生,m道题,给出每个同学解出m个问题的概率,在解题过程中每个学生的解题数的差不大于1,求最大能解出题目数的期望 分析: n很小,知道用状压,但是比赛没做出来(脑子太死了,有一个限制条件 ...

  4. HNU 13108-Just Another Knapsack Problem (ac自动机上的dp)

    题意: 给你一个母串,多个模式串及其价值,求用模式串拼接成母串(不重叠不遗漏),能获得的最大价值. 分析: ac自动机中,在字典树上查找时,用dp,dp[i]拼成母串以i为结尾的子串,获得的最大价值, ...

  5. acdream 1044

    题意:有你一个草坪,草的初始高度都是100,让你用割草机割,割草机只能横着或竖着割,每次割的高度一定,问你能不能割出给定的草坪出来. 考虑任意一个草被割要么是横着要么竖着,所以任意一个草必然是它所在行 ...

  6. asp.net如何将DataSet转换成josn并输出

    public class JsonUtil { public string ToJson(DataSet dataSet) { string jsonString = "{"; f ...

  7. 在虚拟机中安装windows

    前言: 本来在windows当中安装windows是一件很简单的事,但是在使用光盘进行安装的时候,发现无法进行安装. 思路: 将光盘进行提取成iso文件,一个光盘提取一个iso文件,从而存在两个iso ...

  8. MVC & MVVM

    什么是MVC,什么是MVVM? 面向过程 --> 面向对象 --> MVC --> MV* 面向过程: 开发人员按照需求逻辑顺序开发代码逻辑,主要思维模式在于如何实现.先细节,后整体 ...

  9. 使用jQuery Mobile实现通讯录

    jQuery Mobile 通讯录 拨打电话作者:方倍工作室 地址: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional/ ...

  10. SendMessage()、WPARAM、LPARAM函数使用例子(转)

      http://chujiaba.blog.163.com/blog/static/18991813720106209350592/ 2010-07-20 21:35:00|  分类: C |  标 ...