美文网首页我爱编程
Qt学习笔记(五)QString 字符串

Qt学习笔记(五)QString 字符串

作者: 行走行囊 | 来源:发表于2018-04-17 06:55 被阅读0次

    1、字符集

    字符 Character:文字符号。
    字符集 Charset:字符的集合,规定一系列字符与数字的关系(编码)。

    字符集都是由一些组织制定和发布的,例如ISO/IEC就负责制定字符集。

    每个字符集都有一个标准编号,例如,ASCII字符集的编号为ISO/IEC 646(即,由ISO/IEC发布第646号标准文档)。

    2、拉丁字符集

    拉丁字符集,收录了欧洲各个国家的字符,例如,希腊字母Aα Bβ。

    拉丁字符集的编号为ISO 8859系列,例如,ISO8859-1字符集,也就是Latin-1,是西欧常用字符,包括德法两国的字母。ISO8859-2字符集,也就是Latin-2,收集了东欧字符。

    注意:拉丁字符的总数远远超过了256个,无法用一个char型表示,得用2个字节表示。所以,即使不使用中文,外文字符的表示也是有问题的。

    char a = ‘α’;// 这就有问题了
    

    问题的原因是相同的,无法用一个字节来表示一个字符。
    ASCII码:0-127之间,最高位0,拉丁字符:最高位1。以此来区分。

    3、中文字符集

    GB2312,中文简体国标码(6763个汉字);
    GBK,扩展中文GB编码(兼容GB2312);(工具UltraEdit)
    GB18030,用1-4个字节编码,容量超大;
    BIG5,中文繁体编码;
    CJK,中日韩大字符集编码;
    Unicode,统一码,用0-0x10FFFF来映射全球各国的语言文字。

    Unicode编码方案:
    ①UTF-32编码:每个字符用一个int来表示;
    ②用1-2个short来表示一个字符;
    ③UTF-8编码:用1-4个字节来表示一个字符(比较节省空间)

    注意:windows中.cpp文件中的汉字都是以GBK格式编码的,其他平台可能会不一样。所以,如果想以Unicode格式输出,需通过某些方法来转换。

    4、QString相关转换

    Qt是一个跨平台的框架,它封装了一个QString类来代表字符串,是一个Unicode16编码的类。

    void MyWin3::TestBtnClicked() {
        QString str = "哈哈";
        ui.lineEdit->setText(str);
    }
    
    
    image.png
    void MyWin3::TestBtnClicked() {
        QString str = QString::fromLocal8Bit("哈哈");
        ui.lineEdit->setText(str);
    }
    
    image.png

    5、程序发布注意事项

    当程序中带有中文转换处理时,需要将Qt使用的文字编码库一同发布。
    Windows下Qt应用程序:
    ①找到Qt的编码库:C:\x.x.x\plugins\codercs
    ②拷贝codecs文件夹到工程exe文件所在目录下。
    ③把vs的运行时库也要拷贝到cedecs目录下。(mvcm/mvcp/mvcr)

    相关文章

      网友评论

        本文标题:Qt学习笔记(五)QString 字符串

        本文链接:https://www.haomeiwen.com/subject/amaekftx.html