VC下字符编码转换

作者: NiceBlueChai | 来源:发表于2017-10-06 20:17 被阅读24次

#ifndef _QT_GBK_H
#define _QT_GBK_H


#include <QString>
#include <QTextCodec>
#include <string>
using std::string;

class GBK
{
public:
    // QString(Unicode) -> std::string (GBK)
    static string FromUnicode(const QString& qstr)
    {
        QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
        if(!pCodec) return "";  
        /* 注: 如果pCodec为NULL, 则说明你的Qt安装位置不是默认位置,
        具体解决方法看Qt篇的《常见问题汇总》! */
        
        QByteArray arr = pCodec->fromUnicode(qstr);
        string cstr = arr.data();
        return cstr;
    }

    // std::string (GBK) -> QString(Unicode)
    static QString ToUnicode(const string& cstr)
    {
        QTextCodec* pCodec = QTextCodec::codecForName("gb2312");
        if(!pCodec) return "";
        /* 注: 如果pCodec为NULL, 则说明你的Qt安装位置不是默认位置,
        具体解决方法看Qt篇的《常见问题汇总》! */

        QString qstr = pCodec->toUnicode(cstr.c_str(), cstr.length());
        return qstr;
    }

    /* 取两个较短的函数名 : w: wide-char  a: ansi 
       大家可以用这两个函数
    */
    // QString(Unicode) -> std::string (GBK)
    static string w2a(const QString& qstr)
    {
        return FromUnicode(qstr);
    }

    // std::string (GBK) -> QString(Unicode)
    static QString a2w(const string& cstr)
    {
        return ToUnicode(cstr);
    }


};


#endif

相关文章

  • VC下字符编码转换

  • linux下字符编码转换

    #include #include #include using namespace std; //编码转换,so...

  • 部分知识点

    chr(编码值) - 将字符编码转换成字符 ord(字符) - 获取字符对应的编码值 可以将字符编码放到字符串中便...

  • Pytho基础知识:字符编码

    阅读目录一、字符编码 1、什么实字符编码:将人识别的字符转换成计算机能识别的01,而转换的过程或者规则就是字符编码...

  • 常用函数记录

    字符串编码转换函数:

  • Python正式课第十三天

    一、文件操作与字符编码 1. 字符编码 编码 将字符转换为对应的二进制序列的过程叫做字符编码(字符->二进制01)...

  • Unicode编码和多字节编码

    wchar_t:unicode编码的字符char:多字节编码的字符TCHAR:根据环境转换字符类型的字符 "hel...

  • js 16进制转中文

    转换为中文字符串 转换为unicode编码

  • 38 转换流

    字符编码和字符集 学习转换流之前,先学习下字符编码集 我们知道计算机文件是01存储,但是图片文档打开效果各不一样,...

  • wchar_t 几字节长

    在Windows下宽字符编码定为UTF-16,因此,在windows(32位或64位)的VC环境,wchar_t总...

网友评论

    本文标题:VC下字符编码转换

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