精华内容
下载资源
问答
  • QStringUTF-16

    2011-03-02 13:59:00
    参考http://en.wikipedia.org/wiki/UTF-16  UTF-16 is used by the Qualcomm BREW operating systems; the .NET environments; Mac OS X's Cocoa and Core Foundation frameworks; and the Qt cross-platform ...

    参考http://en.wikipedia.org/wiki/UTF-16

     

    UTF-16 is used by the Qualcomm BREW operating systems; the .NET environments; Mac OS X's Cocoa and Core Foundation frameworks; and the Qt cross-platform graphical widget toolkit

    展开全文
  • QByteArray QString Base64 UTF8

    千次阅读 2016-05-12 09:53:11
    QByteArray bytearray64 = jsonValue.toString().toUtf8(); QByteArray bytearraytheme = QByteArray::fromBase64(bytearray64);  QString temp = QString::fromUtf8(bytearraytheme);
    QByteArray bytearray64 = jsonValue.toString().toUtf8();
    QByteArray bytearraytheme = QByteArray::fromBase64(bytearray64);

                            QString temp = QString::fromUtf8(bytearraytheme);

    1. QByteArray cstr("abcd");  
    2. QString s = cstr;   
    3.   
    4. QByteArray cstr("abcd");  
    5. QString s;  
    6. s.prepend(cstr);  
    7.   
    8. QString s("hello");  
    9. QByteArray cstr = s.toAscii();  
    10.   
    11. QString s("hello");  
    12. QByteArray cstr = s.toLatin1();  

    QByteArray类同样不以'\0'为结尾:如

    [cpp]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. QByteArray s;  
    2. s.resize(5);  
    3. s[0] = '1';  
    4. s[1] = '2';  
    5. s[2] = '3';  
    6. s[3] = '\0';  
    7. s[4] = 'a';  
    8.   
    9. cout << s << endl;  

    第一种,数据流的方式,这里只说从QByteArray转向QString。
    QByteArray encodedString = "xxx";
    QTextCodec *codec = QTextCodec::codecForName("KOI8-R");
    QString string = codec->toUnicode(encodedString);
    第二种,常用的,网上看到的。
    //常用参数类型:char *字符串, QByteArray字符数组, QString字符串
    //需要转换:char * ---转--- QByteArray ---需要调用QByteArray类的构造函数
    char*     --------------QByteArray(const char*)-----------> QByteArray
    char* str;
    QByteArray byte(str);
    char*     --------------QString(const char*)-------------->QString
    char* str;
    QString string(str);
    QByteArray   -------------data()-------------------->char*
    QByteArray byte;
    char* str = byte.data();
    QByteArray ------------QString()------------------->QString
    QByteArray byte;
    QString string(byte);
    QString --------------toAscii()--------------------> QByteArray
    QString string;
    QByteArray byte = string.toAscii();
    QString -------------qPrintable()------------------>char*
    QString string;

    char* str = qPrintable(string);


    展开全文
  • QString 中文编码转换

    万次阅读 2017-07-10 22:17:26
    QString GBK2UTF8(const QString &str) { QTextCodec *utf8 = QTextCodec::codecForName("UTF-8"); return utf8->toUnicode(str.toUtf8()); } QString UTF82GBK(const QString &str) { QTextCodec *gbk

    QT字符编码开发中遇到了很多坑,一不小心就会出现中文乱码, 在这里小结一下。

    1.  QString本身是编码是unicode
    2. 在windows下local8Bit是GBK
    3.  源代码即.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;
    }


    参考文章:

    http://blog.csdn.net/ak47zhangzhiwei/article/details/7895422


    展开全文
  • This may sounds like a obvious question, but I'm missing something about either how UTF-8 is encoded or how the toUtf8 function works.Let's look at a very simple programQString str("Müller");...

    This may sounds like a obvious question, but I'm missing something about either how UTF-8 is encoded or how the toUtf8 function works.

    Let's look at a very simple program

    QString str("Müller");

    qDebug() << str << str.toUtf8().toHex();

    Then I get the output

    "Müller" "4dc383c2bc6c6c6572"

    But I got the idea the the letter ü should have been encoded as c3bc and not c383c2bc.

    Thanks

    Johan

    解决方案

    It depends on the encoding of your source code.

    I tend to think that your file is already encoded in UTF-8, the character ü being encoded as C3 BC.

    You're calling the QString::QString ( const char * str ) constructor which, according to http://doc.qt.io/qt-4.8/qstring.html#QString-8, converts your string to unicode using the QString::fromAscii() method which by default considers the input as Latin1 contents.

    As C3 and BC are both valid in Latin 1, representing respectively à and ¼, converting them to UTF-8 will lead to the following characters:

    Ã (C3) -> C3 83

    ¼ (BC) -> C2 BC

    which leads to the string you get: "4d c3 83 c2 bc 6c 6c 65 72"

    To sum things up, it's double UTF-8 encoding.

    There are several options to solve this issue:

    1) You can convert your source file to Latin-1 using your favorite text editor.

    2) You can properly escape the ü character into \xFC in the litteral string, so the string won't depend on the file's encoding.

    3) you can keep the file and string as UTF-8 data and use QString str = QString::fromUtf8 ("Müller");

    Update: This issue is no longer relevant in QT5. http://doc.qt.io/qt-5/qstring.html#QString-8 states that the constructor now uses QString::fromUtf8() internally instead of QString::fromAscii(). So, as long as UTF-8 encoding is used consistently, it will be used by default.

    展开全文
  • 1.std::string 转 QString QString StrToQStr(const char* s) { if ( NULL == code ) { code = QTextCodec::codecForName("GBK"); if ( NULL == code ) { code = QTextCodec::codecForName("GB18030");...
  • QT utf-16le 转QString

    2020-12-23 15:19:44
    QString strxx=QString::fromUtf16(reinterpret_cast<const ushort*>(bytes.constData()),bytes.length()); 后边会出现部分乱码。 方法2: QByteArray bytes= QByteArray::fromBase64(/*base64 字符串*/...
  • QString

    千次阅读 2019-08-16 13:53:19
    一、初始化QString 1、最常用的初始化: QString str = "Hello"; 这实际上是使用QString::fromUtf8()将一个C语言风格的字符串: const char * p = "hello"; 转成QString。 p可以为空,以下写法是合法的: ...
  • QString 转toLatin1 toUtf8 toLocal8Bit toUtf8:utf8字符集以2个或以上的字节表示一个汉字。实际上具体的数值和unicode有很大的相关 toLatin1:ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF ...
  • 公司代码有多国语言支持,遇到需要使用QString转char 网上很多人一碰到编码问题就无脑的Copy上面3行…… 从Qt5开始只剩下setCodecForLocale这一个了,只是影响Qt对toLocal8Bit相关函数的编码方式 QTextCodec::...
  • Qstring

    千次阅读 2018-07-12 10:57:35
    原地址:https://blog.csdn.net/qq_40194498/article/details/79629632QString在Qt的各种数据转换中可谓举足轻重,熟悉QString的用法对于Qt编程真的是如虎添翼:QString 字符串有相当多的操作符和函数,此处只介绍...
  • #ifndef _QT_UTF8_H #define _QT_UTF8_H #include &lt;QString&gt; #include &lt;string&gt; using std::string; class AfUtf8 { public: // QString(Unicode) -&gt; std::str...
  • 源码必须是UTF-8,QString需要它

    千次阅读 2013-09-09 14:34:54
    来源: http://blog.qt.digia.com/cn/2012/05/16/source-code-must-be-utf-8-and-qstring-wants-it/ ...Source code must be UTF-8 and QString wants it 先前我讨论过源代码的编码问题,认为C++语言缺少一个必要的
  • QByteArray(UTF8编码串)转QString

    千次阅读 2013-04-04 21:39:56
    QTextCodec *tc = QTextCodec::codecForName("UTF8"); QByteArray ba = 读到的QByteArray串; QString str = tc->toUnicode(ba); cout 这个时候,就能够正常显示中文了。
  • QString file=playlist.at(index).filename; const QByteArray& filebyte=file.toUtf8(); media=0; media = libvlc_media_new_path(instance,filebyte.data()); 但是同样的代码,qt4可以播放中文路径下的电影,这...
  • qstring

    千次阅读 2010-10-30 21:17:00
    所有的QString的方法都使用const char *参数,const char *被解释为经典的C风格的以零结尾的ASCII字符串。所以const char *参数为0是合法的。如果const char *不是以零结尾的,结果是不确定的。把经典的C字符...
  • QString utf8Togb2312(QString data) { QTextCodec* utf8Codec = QTextCodec::codecForName("utf-8"); QTextCodec* gb2312Codec = QTextCodec::codecForName("gb2312"); QString strUnicode = utf8Codec->t.
  • #include #include #include #include void MainWindow::on_pushButton_clicked() {   /*  只有8位编码的才需要tr, unicode不要tr ... 所谓的QString转char*,结果并不相同,根据编码
  • 在主函数app后加上这句: QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030")); ...然后是从UTF8编码到GB编码的...QString Utf8_To_GB(QString strText){ return QString::fromUtf8(strText.to...
  • QString to base64QString , to unBase64QString

    千次阅读 2018-12-08 18:38:37
    QString qs2B64(QString qs1){//ok ////////////////////////////// QByteArray ba; ba=qs1.toUtf8(); //QByteArray ba=ba.toBase64(); //Base64 char * cx=ba.d...
  • QByteArray array = str.toUtf8(); QString string1=array.toHex(); 转换的效果 可以明显的看出虽然已经实现将QString转换成了16进制的样式,但一个个的都连在一起,不方便查看,所以还需要进
  • 代码如下:如果不不设全局的字符集是utf-8,那么网上一般的方法是可以转的。如下程序中 #define DD 1的情况下;但是如果设置了全局的utf-8,再用以前的方法: QByteArray ba=aaa.toLatin1(); const char *c_...
  • QString 详解

    2020-05-25 21:34:07
    QString在Qt的各种数据转换中可谓举足轻重,熟悉QString的用法对于Qt编程真的是如虎添翼: QString 字符串有相当多的操作符和函数,此处只介绍一些比较常用的: (1) “+” 用于组合两个字符串,“+=” 用于将一个...
  • QString转QJsonValue

    千次阅读 2018-09-07 14:48:47
    QJsonValue stringToJson(const QString &amp;str) {  QString context = QString("{%1}"... QJsonDocument doc = QJsonDocument::fromJson(context.toUtf8(), &amp;err); ...
  • QString乱码笔记

    2021-04-21 17:49:47
    QString 转 LPCWSTR utf16 二.VS。 下载“ForceUTF8(NoBIM)”工具(VS2017连网下载若只是计划安装,出门单独下载吧,坑了半下午)。 c/c++ 命令行 /utf-8 三.QtCreator。 #pragma execution_character_set(“utf-8”) ...
  • QString::QString 中文乱码 处理方法: 1. QString str = QString::fromLocal8Bit("中文"); // vs2008 vs2005 2. QString str = QString::fromLocal8Bit("中文"); // gcc vs2003, 如源码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,079
精华内容 4,031
关键字:

qstringutf