• 如何在VC中查询中文,及QT5的中文处理


    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的编码处理方式有关吧.


  • 相关阅读:
    尽可能装满的背包问题
    mysql的下载与安装
    IDEA中安装ibatis插件
    tomcat启动失败,提示信息:Unable to ping server at localhost:1099
    http响应头
    查看电脑的IP地址及配置
    IDEA中不同项目配置不同JDK
    Navicat for mysql的下载及破解
    java中String的equals()和 ==
    BeanUtils出现Java.lang.NoClassDefFoundError解决
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3237032.html
Copyright © 2020-2023  润新知