QUrl的使用,特别是对含特殊字符的字符串进行 URL 格式化编码
QUrl提取与写入参数
QUrl url("www.baidu.com?a=666&b=888");
url.addQueryItem("c","");
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中的中文字符,后期再讨论
最新文章
- PIC32MZ tutorial -- Core Timer
- IOS开发初步
- 国家电力项目SSH搭建
- [转载]javascript创建对象的几种方式
- mac svn 更新到新版本1.8
- Quartz.net打造信息抽取器
- Android图片上传,可以选择多张图片,缩放预览,拍照上传等
- mysql建立数据库的方法
- 对面向对象的理解—— SAP电面(1)
- C#设计模式:责任链模式
- 10个Python基础练习项目,你可能不会想到练手教程还这么有趣
- Visual Studio 代码快捷键
- 命令行批量修改IP并ping测试
- 085 HBase的二级索引,以及phoenix的安装(需再做一次)
- 构造器初始化(static)
- 鸟哥的Linux私房菜——第十一章
- php之快速入门学习-11(数组排序)
- Selenium_python自动化环境搭建篇
- Why did we build Zuul? How We Use Zuul At Netflix
- C#读取EXCEL到内存
热门文章
- 滴滴出行开源项目doraemonkit食用指南
- ListView详细介绍与使用
- PHP将数组转字符串
- 使用JAVAScript技术在WEB网页实现摇一摇的应用
- (七)Amazon Lightsail 部署LAMP应用程序之清除已安装服务
- 数据库(update tab1 set tab1.name=tab1.name+(select t2.name from tab2 t2 where t2.id=tab1.id))
- js判断为空
- IronPython
- DirectShow 学习方法
- Flask-Moment本地化日期和时间