• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            walt

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              4 隨筆 :: 3 文章 :: 1 評(píng)論 :: 0 Trackbacks

            QT4.6中文GB2312與utf-8和unicode及URL encoding %編碼匯總

            大家好,
            剛開始接觸QT,還不太懂希望大家多交流。
            由于想寫一個(gè)簡(jiǎn)單的程序涉及到編碼轉(zhuǎn)換的問題,故將學(xué)到的點(diǎn)滴分享一下。

            說明:
            windows中ie地址欄寫“我們”發(fā)送到服務(wù)器端會(huì)變?yōu)?#8220;%CE%D2%C3%C7”,是GB2312轉(zhuǎn)換成URL 百分號(hào)編碼的形式
            ubuntu中firefox地址欄寫“我們”發(fā)送到服務(wù)器變成"%E6%88%91%E4%BB%AC",是UTF-8轉(zhuǎn)換成URL 百分號(hào)編碼的形式


            下面分享匯總后的轉(zhuǎn)換代碼:(我的環(huán)境:ubuntu9.10 QT4.6)
                            //Ubuntu firefox http get "我們" %E6%88%91%E4%BB%AC UTF-8
                            //Windows ie http get "我們" %CE%D2%C3%C7 GB2312
                            char* s="0x我們";   //UTF-8 char*
                            QString strT1="0x%CE%D2%C3%C7";  //GB2312的URL百分號(hào)編碼
                            QByteArray baT1,baT2,baT3,baT4;
                            PercentEncoding2ByteArray(strT1, baT1);  //自己寫的函數(shù),由于QUrl::fromPercentEncoding僅適用UTF-8的URL編碼

                            strT1=QTextCodec::codecForName("GB2312")->toUnicode(baT1);  //GB2312's QByteArray Convert to QString Unicode
                            baT2=QTextCodec::codecForName("GB2312")->fromUnicode(strT1);    //QString Unicode convert to GB2312 QByteArray
                            QString strT2,strT3,strT4,strT5;
                            strT2=QTextCodec::codecForName("UTF-8")->toUnicode("0x我們"); //UTF-8 Char* to Unicode QString
                            baT3=QTextCodec::codecForName("UTF-8")->fromUnicode(strT2);     //Unicode QString to UTF-8 QByteArray
                            strT3=QTextCodec::codecForName("UTF-8")->toUnicode(s); //UTF-8 Char* to Unicode QString
                            strT4=QUrl::toPercentEncoding(QString::fromLocal8Bit(s));   //UTF-8 Char* to PercentEncoding (UTF-8 format)
                            strT5=QUrl::fromPercentEncoding("0x%E6%88%91%E4%BB%AC");    //PercentEncoding (UTF-8 format) to Unicode

                            baT4=QTextCodec::codecForName("GB2312")->fromUnicode(QTextCodec::codecForName("UTF-8")->toUnicode(s));  //UTF-8 Char* to GB2312 QByteArray

            另附一個(gè)小函數(shù):(用于GB2312的URL百分號(hào)編碼轉(zhuǎn)換)
                void PercentEncoding2ByteArray(QString strInput, QByteArray & ByteArrayOut)
                {
                    for(int i=0; i<strInput.length();)
                    {
                        if (0==QString::compare(strInput.mid(i,1), QString("%")))
                        {
                            if ((i+2)<strInput.length())
                            {
                                ByteArrayOut.append(strInput.mid(i+1,2).toShort(0,16));
                                i=i+3;
                            }
                            else
                            {
                                ByteArrayOut.append(strInput.mid(i,1));
                                i++;
                            }
                        }
                        else
                        {
                            ByteArrayOut.append(strInput.mid(i,1));
                            i++;
                        }
                    }//For end

                }// PercentEncoding2ByteArray end
            posted on 2010-05-05 13:29 白宇皓 閱讀(5170) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: 轉(zhuǎn)載 QT4.6中文GB2312與utf-8和unicode及URL encoding %編碼匯總[未登錄] 2013-04-25 17:54 王小亮
            嗯,學(xué)習(xí)了。不錯(cuò)的  回復(fù)  更多評(píng)論
              


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            亚洲欧美日韩久久精品第一区| 青青草原综合久久大伊人| 久久精品国产亚洲Aⅴ香蕉 | 欧美牲交A欧牲交aⅴ久久| 国产高潮久久免费观看| 国产欧美久久一区二区| 久久精品国产亚洲AV麻豆网站 | 久久久不卡国产精品一区二区| 69久久夜色精品国产69| 国产亚洲色婷婷久久99精品| 久久久久久午夜成人影院 | 久久无码AV一区二区三区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 色综合久久综合中文综合网| 亚洲AV无一区二区三区久久| 久久精品国产亚洲AV蜜臀色欲| 久久精品国产亚洲AV不卡| 亚洲中文久久精品无码ww16| 色偷偷偷久久伊人大杳蕉| 久久人人爽人人爽人人片av高请| 无码人妻久久一区二区三区 | 久久亚洲国产最新网站| 久久青青色综合| 国产精品免费福利久久| 人人狠狠综合久久亚洲88| 久久国产香蕉一区精品| 日本欧美国产精品第一页久久| 久久亚洲精品国产亚洲老地址| 亚洲精品无码久久千人斩| 国内精品久久九九国产精品| 久久九色综合九色99伊人| 中文字幕精品久久久久人妻| 色狠狠久久AV五月综合| 狠狠色丁香婷婷综合久久来来去| 伊色综合久久之综合久久| 久久精品亚洲一区二区三区浴池| 亚洲国产精品久久久久久| 超级97碰碰碰碰久久久久最新 | 久久精品国产亚洲av麻豆小说| 91精品国产色综久久| 伊人久久大香线蕉综合影院首页|