zoukankan      html  css  js  c++  java
  • QString 中文编码转换

     
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/xxm524/article/details/74937308

    QT字符编码开发中遇到了很多坑,一不小心就会出现中文乱码, 在这里小结一下。
     QString本身是编码是unicode
    在windows下local8Bit是GBK
     源代码即.cpp文件是有编码的,不同编译器也有默认编码,如:
    微软VS的中的cl采用GBK
    Mingw中的g++不带BOM的UTF-8
    Linux下的g++ 采用带BOM的UTF-8 这3中编码进行保存
    (所以,在代码中hard code中文时, 要搞清楚使用的编译器本身的编码格式)
     
    QString GBK2UTF8(const QString &str)
    {
        QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
        return utf8->toUnicode(str.toUtf8());
    }
     
    QString UTF82GBK(const QString &str)
    {
        QTextCodec *gbk = QTextCodec::codecForName("GB18030");
        return gbk->toUnicode(str.toLocal8Bit());
    }
     
    std::string GBK2UTF8(std::string &str)
    {
        QString temp = QString::fromLocal8Bit(str.c_str());
        std::string ret = temp.toUtf8().data();
        return ret;
    }
     
    std::string UTF82GBK(std::string &str)
    {
        QString temp = QString::fromUtf8(str.c_str());
        std::string ret = temp.toLocal8Bit().data();
        return ret;
    }
  • 相关阅读:
    HDU 4325 Contest 3
    HDU 4324 Contest 3
    HDU 4323 Contest 3
    HDU 4321 Contest 3
    HDU 4320 Contest 3
    HDU 4314 Contest 2
    HDU 4313 Contest 2
    HDU 4318 Contest 2
    12-----简单认识下margin
    11-----broder(边框)
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/11821318.html
Copyright © 2011-2022 走看看