zoukankan      html  css  js  c++  java
  • 如何在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的编码处理方式有关吧.


  • 相关阅读:
    [fw]PAGE_SIZE & PAGE_SHIFT & _AC()
    Memory layout of x86_64 in Linux
    Compile Linux Kernel on Ubuntu 12.04 LTS (Detailed)
    ret/retn人为改变执行地址
    [fw]LINUX中断描述符初始化
    查看x86主機是否支援64bit in Linux
    Linux.中断处理.入口x86平台entry_32.S
    [fW]中断处理函数数组interrupt[]初始化
    Linux GNU GAS introduction
    洛谷试炼场 3-5数论 3-17 倍增
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3237032.html
Copyright © 2011-2022 走看看