精华内容
下载资源
问答
  • 先上结果: utf-8文字: 这是测试文字123456abcdefg Unicode码: 杩欐槸娴...1. utf8转Unicode码 QString utf8ToUnicode(const QString strUtf8)...

    先上结果:

          utf-8文字:  这是测试文字123456abcdefg 

          Unicode码: 杩欐槸娴嬭瘯鏂囧瓧123456abcdefg

     

    上代码:

    1. utf8转Unicode码

    QString utf8ToUnicode(const QString strUtf8)
    {
        QString strOut;
        QString unidata = strUtf8;
        for (int i = 0; i < unidata.length(); ++i)
        {
            ushort num = unidata[i].unicode();
            if (num < 255)
                strOut += unidata[i];
            else
                strOut += QString("&#x%1;").arg(QString::number(num, 16));
        }
        
        return strOut;
    }

     2. Unicode转utf8

    QString unicodeToUtf8(const QString strUnicode)
    {
    	QString strOut = strUnicode;
    
    	int nPos = 0;
    	QRegExp rx("&#x([0-9,a-f|A-F]{4});");
    
    	while ((nPos = rx.indexIn(strOut, nPos)) != -1)
    	{
    		QChar qCh(rx.cap(1).toUShort(nullptr, 16));
    		strOut.replace(nPos, rx.matchedLength(), qCh);
    		nPos += 1;
    	}
    
    	return strOut;
    }

    使用代码:

    QString str = QString::fromLocal8Bit("5.6破坏的房屋和街区.svg");
    
    QString strUnicode = utf8ToUnicode(str);
    
    QString strUtf8 = unicodeToUtf8(strUnicode);
    

     

    展开全文
  • QtUTF-8转Unicode

    千次阅读 2013-12-02 09:09:59
    这个的选择要和你系统的编码相对应,我的系统编码方案是UTF-8,所以长度为6,因为一个UTF-8的字符使用3个字节来表示,不然就会出错。还有就是对于QString 使用 str . toLatin1 (). data () 如果是std::string直接...
    #include <QtCore/QCoreApplication>
    #include <QDebug>
    #include <iostream>
    #include <QTextCodec>
    
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
       // const std::string str = "汉字";
        const QString str = "汉字";
    
    
        std::cout << str.length() << std::endl;
    
        QTextCodec *codec = QTextCodec::codecForName("UTF-8");
        QString unicode_str = codec->toUnicode(str.toLatin1().data());
    
        for(int i = 0;i <unicode_str.length();++i) {
            qDebug() << QString::number(unicode_str[i].unicode(),16);
        }
        
        return a.exec();
    }
    
    
    

    注意点了

    1.

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    这个的选择要和你系统的编码相对应,我的系统编码方案是UTF-8,所以长度为6,因为一个UTF-8的字符使用3个字节来表示,不然就会出错。还有就是对于QString
    使用
    str.toLatin1().data()
    如果是std::string直接使用str.data()就可以了

    展开全文
  • Qt入门之utf8unicode转换

    万次阅读 2015-07-02 16:20:56
    utf8转unicode 这里打开文件只是当时调试用的,无关紧要. (255, 255, 204); font-family: 'Courier New'; overflow: auto; background-color: rgb(255, 255, 252);">void MessageForm::sendMessage() {...

    转载自http://m.blog.csdn.net/blog/u011791262/25040271

    一、几种编码的了解

    参考博客http://blog.csdn.net/polarman/article/details/1593159


    二、简单的认识下QByteArray、QString

    QString的根本是QChar数组,但不以\0结尾,有大小 QChar的根本是ushor

    QByteArray可以理解为Char型的动态数组,有大小,不是以\0结尾


    三、了解QByteArray、QString、char 之间的转换

    QString 转 char

    QString str = "string";
    char *ch ;
    ch = str.toLocak8Bit().data();

    QByteArray转char

    char *ch;
    QByteArray byte;
    ch = byte.data();


    四、了解QString与各编码之间的关系

    QString本身是unicode编码,所以我们要将储存在char * 里的字符(可能是utf8或者是GB2312、latin-1)转化为QString,就要告诉

    QString之间的编码方式是什么.有一下两种方法:

    1、用QString自带的函数

    QString fromAscii ( const char *str, int size = -1 )

    QString fromLatin1 ( const char *str, int size = -1 )

    QString fromLocal8Bit ( const char *str, int size = -1 )

    QString fromUtf8 ( const char *str, int size = -1 )

    2、用QTextCodec

    QString QTextCodec::toUnicode ( const char * chars ) const


    五、显示十六进制

    1、QString QString::number ( int n, int base = 10 )

    用法:QString::number(unidata[i].unicode(),16);

    2、QByteArray toHex () const 


    例子:

    utf8转unicode

    这里打开文件只是当时调试用的,无关紧要.

    <pre code_snippet_id="327547" snippet_file_name="blog_20140505_3_8724804" name="code" class="cpp" style="border: 1px solid rgb(255, 255, 204); font-family: 'Courier New'; overflow: auto; background-color: rgb(255, 255, 252);">void MessageForm::sendMessage()
    {
    
        QFile file(filename);
        QTextCodec *codec = QTextCodec::codecForName("UTF8");
    
        QString strout;
    
        if ( file.open(QIODevice::WriteOnly) )
        {
            QTextStream ts(&file);
    
            QString strdata = displayWindow->toPlainText();
            QString unidata = codec->toUnicode(strdata.toUtf8().data());
    
            for (int i=0; i<unidata.length(); ++i)
            {
                ushort num = unidata[i].unicode();
                if (num < 255)
                    strout += "00";
    
                strout += QString::number(num,16);
    
            }
    
                ts << strout;
    
        }
    
        file.close();
    }


     结果: 
    

     
    
    展开全文
  • qt5 unicode 中文 utf8

    千次阅读 2015-12-14 17:22:02
    QString unicodeToUtf8(const QString& unicode) { QString result; int index = unicode.indexOf("\\u"); while (index != -1) { QString s1 = unicode.mid(index + 2, 4); result
    QString unicodeToUtf8(const QString& unicode)
    {
        QString result;
        int index = unicode.indexOf("\\u");
        while (index != -1)
        {
            QString s1 = unicode.mid(index + 2, 4);
            result.append(s1.toUShort(0, 16));
            index = unicode.indexOf("\\u", index+5);
        }
        return result.toUtf8().constData();
    }
    
     // 方式1
     qDebug() << qUtf8Printable(unicodeToUtf8("\\u5468\\u65E5"));
     // 方式2
     qDebug() << qUtf8Printable(QString::fromWCharArray(L"\u5468\u65E5"));
    </pre>

    输出:

    周日

    周日

    展开全文
  • 由于项目需要,需要对网络资源进行解码。遇到编码问题。研究了下基本编码原理。于是有了下面两个通用代码 ... // unicode转utf-8 思路: 一个unicode编码占用2字节。所以只需要用4个16进制数字结合表示就行了 QS
  • 查看文本文件的编码方式 UTF8 ANSI UNICODEqt下编译通过
  • QTunicode编码转utf8

    千次阅读 2019-03-29 18:50:55
    因为是以前别人写的代码,没有使用json对象去取,直接成字符串来截取,我也懒得改动,这部分已经截取出来了,就直接把utf8显示就好了。网上找的别人的代码,找了一些菜找到能用的,这里记录一下 下面是代码:...
  • 文章目录前言简述ASCIIGBKUnicodeUTF-8应用场景开发环境编码转换16进制数值转换为16进制字符16进制数值转化为字符串16进制字符串转换为Unicode字符串Unicode字符串转化为16进制字符串总结参考资料 前言 字符编码方式...
  • Qtunicode转utf-8

    万次阅读 2013-12-29 19:14:23
    最经在研究AT指令接受短信,短信是unicode编码,接受后需要根据系统的编码方案进行相关的转码 比如接受到了一串字符4F60597D,它是“你好”的unicode编码,一个unicode编码占两个字节...因为Qt本身的编码方案就是unico
  • QT UTF-8转GBK编码

    2020-03-16 00:17:05
    Qt5中使用Unicode来存储、操作字符串,windows下是GBK编码。 UTF-8 GBK QString appLink = "有道云笔记.lnk"; appLink = chineseCodec(appLink); //返回与匹配名称最匹配的对象 QTextCodec *utf8 = QTextCodec:...
  • 任何编码先转换成统一编码toUnicode(),然后再转出fromUnicode(); gb2312转utf8:  QString ssss=QString::fromLocal8Bit("ceshi我是测试"); //注意此处定义gb2312编码的...utf8转gb2312:  入参是u...
  • In QT 5.4 and C++ I try to decode a string that has unicode entities.I have this QString:QString string = "file\u00d6\u00c7\u015e\u0130\u011e\u00dc\u0130\u00e7\u00f6\u015fi\u011f\u00fc\u0131.txt";...
  • 代码解读: utf8 与 gdk 不能直接进行转换,而需要借助于unicode来进行变换. utf8向gdk转换的过程是utf8->unicode, unicode->gdk. 第一步变换需要utf8 QTextCodec, 第二步变换需要gdk QTextCodec,
  • 编码方式之间的转换是先将源编码到无编码,然后再到目标编码 //utf8与gb2312的相互转换 QString utf8Togb2312(QString data) { QTextCodec* utf8Codec = QTextCodec... QString strUnicode = utf8Codec->t.
  • 嵌入式QtUTF8转GBK

    2017-11-23 17:58:46
    QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");  QTextCodec *gbk = QTextCodec::codecForName("GBK");  QString str = "请上车";... qDebug()fromUnicode(utf8->toUnicode(str.toLatin1())).toHe
  • QT Utf-8 GBK

    千次阅读 2013-09-30 17:55:41
    QTextCodec *gbk = QTextCodec::codecForName("gb18030");... QTextCodec *utf8 = QTextCodec::codecForName("utf-8"); QTextCodec::setCodecForTr(gbk); QTextCodec::setCodecForLocale(gbk); // QString utfStr =
  • UTF8 and Unicode

    2012-05-22 21:01:02
    http://www.linuxforum.net/books/UTF-8-Unicode.html ...这篇文章说明了在 POSIX 系统 (Linux,Unix) 上使用 Unicode/UTF-8 所需要的信息. 在将来不远的几年里, Unicode 已经很接近于取代 ASCII 与 L
  • qt utf8编码与gbk编码转换

    千次阅读 2018-04-08 21:37:49
    #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &... void printContent(char *p) int main() { QTextCodec *utf8 = QTextCodec::codecForName...
  • 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)

    万次阅读 多人点赞 2014-02-15 16:46:22
    一、Qt环境设置 Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码: 默认编码:System(简体中文windows系统默认指的是GBK编码,即下拉框选项里的GBK/windows-936-2000/CP936/MS...★UTF-8Unicode Transformat
  • 我从数据库中取出数据存到Vector中,生成三个txt保存要以ANSI、Unicode、以及UTF-8分别保存,现在这种默认的方式为UTF-8格式, 查了资料用setCodec函数但是设置没有效果。对字符码不熟悉,希望大家解答。如何导出到...
  • QTextCodec *utf8 = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForLocale(utf8); QTextCodec* gbk = QTextCodec::codecForName("gbk"); //utf8 -> gbk //1. utf8 -> unicode .
  • QT乱码总结0.Qt乱码产生因素...QT乱码总结1.UnicodeUTF-8https://blog.csdn.net/liujiayu2/article/details/103168020 QT乱码总结2.gbk和ANSI和gb2312的区别https://blog.csdn...
  • Qt 字符编码转换(UTF-8 转换为 GBK)

    万次阅读 2018-08-13 15:26:35
    很多时候可能需要字符串编码的转换,最近我需要获取一段字符串的长度,我strlen() 获取的’你好’ 的字节长度为6 ,我记得每个汉字占用2字节 ,查了一下 UTF-8格式 汉字(含繁体)占3字节,需要下码. 编码知识 ...
  • 在用Qt生成用作制作点阵字库的bmp,...第二:编辑器的编码是UTF-8 那么该字自然也是,转换为UNICODE 第三:通过生成的unicode 和 已经产生的图片,按照不同组合生成需要的点阵字库,该字库可以重复添加;   代码如下:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,810
精华内容 1,924
关键字:

qtutf8转unicode