QUrl的使用,特別是對含特殊字符的字符串進行 URL 格式化編碼


QUrl提取與寫入參數

QUrl url("www.baidu.com?a=666&b=888"); url.addQueryItem("c","123456"); qDebug()<<url.queryItemValue("b"); qDebug()<<url.toString();

轉自:https://blog.csdn.net/Think88666/article/details/84066915

 

網址URL中特殊字符轉義編碼

 

字符    -    URL編碼值

空格    -    %20
"          -    %22
#         -    %23
%        -    %25
&         -    %26
(          -    %28
)          -    %29
+         -    %2B
,          -    %2C
/          -    %2F
:          -    %3A
;          -    %3B
<         -    %3C
=         -    %3D
>         -    %3E
?         -    %3F
@       -    %40
\          -    %5C
|          -    %7C 

 

URL特殊字符轉義,URL中一些字符的特殊含義,基本編碼規則如下:

1、空格換成加號(+)
2、正斜杠(/)分隔目錄和子目錄
3、問號(?)分隔URL和查詢
4、百分號(%)制定特殊字符
5、#號指定書簽
6、&號分隔參數

如果需要在URL中用到,需要將這些特殊字符換成相應的十六進制的值
+     %2B
/      %2F
?     %3F
%    %25
#     %23
&    %26

 

Qt 中使用 QUrl 對字符串進行 URL 格式化編碼

QUrl 為我們提供了很多的便利方法,其中對字符串進行 URL 格式化編碼的方法

QByteArray QUrl::toPercentEncoding(const QString & input, const QByteArray & exclude = QByteArray(), const QByteArray & include = QByteArray()) [static]

就是一個很方便的方法,在這個方法中,我們可以簡單地對字符串進行編碼,也可以通過指定第二個參數 exclude 指定哪些字符不需要編碼,以及指定第三個參數 include 強制將某些字符進行編碼。

下面是 Qt 文檔中的一個實例:

QByteArray ba = QUrl::toPercentEncoding("{a fishy string?}", "{}", "s");
qDebug(ba.constData());
// prints "{a fi%73hy %73tring%3F}"

下面是一個簡單的使用實例:

#include <QCoreApplication>
#include <QDebug>
#include <QUrl>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString testString("Hello World!");

    qDebug() << QUrl::toPercentEncoding(testString);

    return a.exec();
}

其實際輸出結果為:

轉自:https://www.jianshu.com/p/f4908911e8d8

 

url中的中文字符,后期再討論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM