随笔 - 356  文章 - 19  评论 - 89  阅读 - 235万

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中的中文字符,后期再讨论

posted on   苦涩的茶  阅读(4781)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix

// 1.生成目录索引列表  
点击右上角即可分享
微信分享提示