Qt532_字符编码转换

Posted CppSkill

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt532_字符编码转换相关的知识,希望对你有一定的参考价值。

1、测试代码:

    // http://blog.csdn.net/changsheng230/article/details/6588447
    QString str = QString::fromLocal8Bit("我是中国人");
    QString str2 = QString("本地文本");  // 乱码
    qDebug() << str;
    qDebug() << str2;

    // Method 2
    QTextCodec *codec = QTextCodec::codecForName("GBK"); // get the codec for KOI8-R
    //QString locallyEncoded = codec->toUnicode( "显示中文" );
    QString locallyEncoded = codec->toUnicode( "我是中国人" );
    qDebug() << locallyEncoded << endl;

    codec = QTextCodec::codecForName("gbk"); // get the codec for KOI8-R
    locallyEncoded = codec->toUnicode( "我是中国人" );
    qDebug() << locallyEncoded << endl;

    wchar_t *pwc = L"我是中国人";
    for (size_t i=0; i<wcslen(pwc); i++)
    {
        ushort us = pwc[i];
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }
    qDebug() << "";

    QChar *pcs = (QChar*)str.unicode();
    for (int i=0; i<str.length(); i++)
    {
        QChar c = pcs[i];
        ushort us = c.unicode();
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }
    qDebug() << "";

    //QChar *pcs = locallyEncoded.data();
    pcs = (QChar*)locallyEncoded.unicode();
    for (int i=0; i<locallyEncoded.length(); i++)
    {
        QChar c = pcs[i];
        ushort us = c.unicode();
        qDebug() << "\t" << QString::number(us, 16).leftJustified(2, 0);
    }

 

2、

 

以上是关于Qt532_字符编码转换的主要内容,如果未能解决你的问题,请参考以下文章

Qt532.QString_填充字符

Qt代码区字符编码转换

ubuntu安装Qt532_gdb

Qt532.容器QMap&QMultiMap

qt 编码的问题

QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换?