嵌入式物联网【数据处理篇】特殊字符处理(Postman 400 Bad Request)

news2024/11/6 7:24:53

目录

一、Postman 400 Bad Request

二、C语言特殊字符处理

三、QUrl toPercentEncoding 处理url中含有特殊字符转码

16进制ASCII码对照表


一、Postman 400 Bad Request

http请求链接中的特殊字符处理

解决包括Postman 中的post、get等链接请求中的特殊字符(如:*,#,{},[],^,%,(,?,!..等等)的情况

1、场景:

特殊字符存在,postman测试时候报400错误

2、原因

如果请求的参数带有一些特殊字符,如 +,%,=等,如果没有进行URL编码可能在发送请求的时候,后端会自动进行URLDecode 操作,得到的值和我们的原本想传的参数不是同一个了

所以使用get请求,或者post请求时(如没有采用form-urlencode的形式),如果参数中含有特殊字符,最好进行URL编码

3、处理

URL编码其实是字符ascll码的十六进制然后在前面加上%号

例如:下面的get请求中含有+号的特殊字符,我们可以对v号进行转码:
http://192168.1.11:8008urlTestV2?p=v 

变成
http://localhost:8080/urlTestV2?p=%5E

常见的特殊字符对应的URL编码

 二、C语言特殊字符处理

1、加转义字符

FTPpasword="(12345";

为了让服务器识别"("

FTPpasword="\(12345";

三、QUrl toPercentEncoding 处理url中含有特殊字符转码

RL特殊字符转义,URL中一些字符的特殊含义,基本编码规则如下:

1、空格换成加号(+)
2、正斜杠(/)分隔目录和子目录
3、问号(?)分隔URL和查询
4、百分号(%)制定特殊字符
5、#号指定书签
6、&号分隔参数

Qt 中使用 QUrl 对字符串进行 URL 格式化编码
QUrl 为我们提供了很多的便利方法,其中对字符串进行 URL 格式化编码的方法

static QByteArray toPercentEncoding(const QString &,
                                        const QByteArray &exclude = QByteArray(),
                                        const QByteArray &include = QByteArray());

二、代码

    QString str = "http://www.baidu.com/game+3.txt";
    QUrl url;
    url.setUrl(str);
    qDebug()<<"url toPercentEncoding:"<<QUrl::toPercentEncoding(str);



 

16进制ASCII码对照表

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)最后一次更新则是在1986年,至今为止共定义了128个字符,其中33个字符无法显示(这是以现今操作系统为依归,但在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已经处理过的文字,在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。

ASCII控制字符

二进制

十进制

十六进制

缩写

可以显示的表示法

名称/意义

0000 0000

0

00

NUL

空字符(Null)

0000 0001

1

01

SOH

标题开始

0000 0010

2

02

STX

本文开始

0000 0011

3

03

ETX

本文结束

0000 0100

4

04

EOT

传输结束

0000 0101

5

05

ENQ

请求

0000 0110

6

06

ACK

确认回应

0000 0111

7

07

BEL

响铃

0000 1000

8

08

BS

退格

0000 1001

9

09

HT

水平定位符号

0000 1010

10

0A

LF

换行键

0000 1011

11

0B

VT

垂直定位符号

0000 1100

12

0C

FF

换页键

0000 1101

13

0D

CR

归位键/输入/回车

0000 1110

14

0E

SO

取消变换(Shift out)

0000 1111

15

0F

SI

启用变换(Shift in)

0001 0000

16

10

DLE

跳出数据通讯

0001 0001

17

11

DC1

设备控制一(XON 启用软件速度控制)

0001 0010

18

12

DC2

设备控制二

0001 0011

19

13

DC3

设备控制三(XOFF 停用软件速度控制)

0001 0100

20

14

DC4

设备控制四

0001 0101

21

15

NAK

确认失败回应

0001 0110

22

16

SYN

同步用暂停

0001 0111

23

17

ETB

区块传输结束

0001 1000

24

18

CAN

取消

0001 1001

25

19

EM

连接介质中断

0001 1010

26

1A

SUB

替换

0001 1011

27

1B

ESC

跳出

0001 1100

28

1C

FS

文件分割符

0001 1101

29

1D

GS

组群分隔符

0001 1110

30

1E

RS

记录分隔符

0001 1111

31

1F

US

单元分隔符

0111 1111

127

7F

DEL

删除

ASCII可显示字符

二进制

十进制

十六进制

图形

0010 0000

32

20

(空格)(␠)

0010 0001

33

21

!

0010 0010

34

22

"

0010 0011

35

23

#

0010 0100

36

24

$

0010 0101

37

25

 %

0010 0110

38

26

&

0010 0111

39

27

'

0010 1000

40

28

(

0010 1001

41

29

)

0010 1010

42

2A

*

0010 1011

43

2B

+

0010 1100

44

2C

,

0010 1101

45

2D

-

0010 1110

46

2E

.

0010 1111

47

2F

/

0011 0000

48

30

0

0011 0001

49

31

1

0011 0010

50

32

2

0011 0011

51

33

3

0011 0100

52

34

4

0011 0101

53

35

5

0011 0110

54

36

6

0011 0111

55

37

7

0011 1000

56

38

8

0011 1001

57

39

9

0011 1010

58

3A

:

0011 1011

59

3B

;

0011 1100

60

3C

<

0011 1101

61

3D

=

0011 1110

62

3E

>

0011 1111

63

3F

?

二进制

十进制

十六进制

图形

0100 0000

64

40

@

0100 0001

65

41

A

0100 0010

66

42

B

0100 0011

67

43

C

0100 0100

68

44

D

0100 0101

69

45

E

0100 0110

70

46

F

0100 0111

71

47

G

0100 1000

72

48

H

0100 1001

73

49

I

0100 1010

74

4A

J

0100 1011

75

4B

K

0100 1100

76

4C

L

0100 1101

77

4D

M

0100 1110

78

4E

N

0100 1111

79

4F

O

0101 0000

80

50

P

0101 0001

81

51

Q

0101 0010

82

52

R

0101 0011

83

53

S

0101 0100

84

54

T

0101 0101

85

55

U

0101 0110

86

56

V

0101 0111

87

57

W

0101 1000

88

58

X

0101 1001

89

59

Y

0101 1010

90

5A

Z

0101 1011

91

5B

[

0101 1100

92

5C

\

0101 1101

93

5D

]

0101 1110

94

5E

^

0101 1111

95

5F

_

二进制

十进制

十六进制

图形

0110 0000

96

60

`

0110 0001

97

61

a

0110 0010

98

62

b

0110 0011

99

63

c

0110 0100

100

64

d

0110 0101

101

65

e

0110 0110

102

66

f

0110 0111

103

67

g

0110 1000

104

68

h

0110 1001

105

69

i

0110 1010

106

6A

j

0110 1011

107

6B

k

0110 1100

108

6C

l

0110 1101

109

6D

m

0110 1110

110

6E

n

0110 1111

111

6F

o

0111 0000

112

70

p

0111 0001

113

71

q

0111 0010

114

72

r

0111 0011

115

73

s

0111 0100

116

74

t

0111 0101

117

75

u

0111 0110

118

76

v

0111 0111

119

77

w

0111 1000

120

78

x

0111 1001

121

79

y

0111 1010

122

7A

z

0111 1011

123

7B

{

0111 1100

124

7C

|

0111 1101

125

7D

}

0111 1110

126

7E

~

其它控制字符

十六进制

缩写

名称/意义

80

[保留]

81

[保留]

82

[保留]

83

[保留]

84

IND

索引

85

NEL

下一行

86

SSA

被选区域起始

87

ESA

被选区域结束

88

HTS

水平制表符集

89

HTJ

对齐的水平制表符集

8A

VTS

垂直制表符集

8B

PLD

部分行向下

8C

PLU

部分行向上

8D

RI

反向索引

8E

SS2

单移 2

8F

SS3

单移 3

90

DCS

设备控制字符串

91

PU1

专用 1

92

PU2

专用 2

93

STS

设置传输状态

94

CCH

取消字符

95

MW

消息等待

96

SPA

保护区起始

97

EPA

保护区结束

98

[保留]

99

[保留]

9A

[保留]

9B

CSI

控制序列引导符

9C

ST

字符串终止符

9D

OSC

操作系统命令

9E

PM

秘密消息

9F

APC

应用程序

其他显示字符

十六进制

显示字符

名称/意义

A0

[保留] 2

A1

¡

反向感叹号

A2

¢

分币符

A3

£

英磅符

A4

[保留] 2

A5

¥

人民币符

A6

[保留] 2

A7

§

章节符

A8

¤

通用货币符号 2

A9

©

版权符号

AA

ª

阴性顺序指示符

AB

«

左角引号

AC

[保留] 2

AD

[保留] 2

AE

[保留] 2

AF

[保留] 2

B0

°

温度符

B1

±

加/减号

B2

²

上标 2

B3

³

上标 3

B4

[保留] 2

B5

µ

微符

B6

段落符,pilcrow

B7

·

中点

B8

[保留] 2

B9

¹

上标 1

BA

º

阳性顺序指示符

BB

»

右角引号

BC

¼

分数四分之一

BD

½

分数二分之一

BE

[保留] 2

BF

¿

反向问号

C0

À

带重音符的大写字母 A

C1

Á

带尖锐重音的大写字母 A

C2

Â

带音调符号的大写字母 A

C3

Ã

带代字号的大写字母 A

C4

Ä

带元音变音 (分音符号) 的大写字母 A

C5

Å

带铃声的大写字母 A

C6

Æ

大写字母 AE 双重元音

C7

Ç

带变音符号的大写字母 C

C8

È

带重音符的大写字母 E

C9

É

带尖锐重音的大写字母 E

CA

Ê

带音调符号的大写字母 E

CB

Ë

带元音变音 (分音符号) 的大写字母 E

CC

Ì

带重音符的大写字母 I

CD

Í

带尖锐重音的大写字母 I

CE

Î

带音调符号的大写字母 I

CF

Ï

带元音变音 (分音符号) 的大写字母 I

D0

[保留] 2

D1

Ñ

带代字号的大写字母 N

D2

Ò

带重音符的大写字母 O

D3

Ó

带尖锐重音的大写字母 O

D4

Ô

带音调符号的大写字母 O

D5

Õ

带代字号的大写字母 O

D6

Ö

带元音变音 (分音符号) 的大写字母 O

D7

OE

大写字母 OE 连字 2

D8

Ø

带斜杠的大写字母 O

D9

Ù

带重音符的大写字母 U

DA

Ú

带尖锐重音的大写字母 U

DB

Û

带音调符号的大写字母 U

DC

Ü

带元音变音 (分音符号) 的大写字母 U

DD

Y

带元音变音 (分音符号) 的大写字母 Y

DE

[保留] 2

DF

ß

德语高调小写字母 s

E0

à

带重音符的小写字母 a

E1

á

带尖锐重音的小写字母 a

E2

â

带音调符号的小写字母 a

E3

ã

带代字号的小写字母 a

E4

ä

带元音变音 (分音符号) 的小写字母 a

E5

å

带铃声的小写字母 a

E6

æ

小写字母 ae 双重元音

E7

ç

带变音符号的小写字母 c

E8

è

带重音符的小写字母 e

E9

é

带尖锐重音的小写字母 e

EA

ê

带音调符号的小写字母 e

EB

ë

带元音变音 (分音符号) 的小写字母 e

EC

ì

带重音符的小写字母 i

ED

í

带尖锐重音的小写字母 i

EE

î

带音调符号的小写字母 i

EF

ï

带元音变音 (分音符号) 的小写字母 i

F0

[保留] 2

F1

ñ

带代字号的小写字母 n

F2

ò

带重音符的小写字母 o

F3

ó

带尖锐重音的小写字母 o

F4

ô

带音调符号的小写字母 o

F5

õ

带代字号的小写字母 o

F6

ö

带元音变音 (分音符号) 的小写字母 o

F7

oe

小写字母 oe 连字 2

F8

ø

带斜杠的小写字母 o

F9

ù

带重音符的小写字母 u

FA

ú

带尖锐重音的小写字母 u

FB

û

带音调符号的小写字母 u

FC

ü

带元音变音 (分音符号) 的小写字母 u

FD

ÿ

带元音变音 (分音符号) 的小写字母 y 2

FE

[保留] 2

FF

[保留] 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌关键词优化多少钱【2023年调研】

本文主要分享Google关键词排名优化的一些成本调研&#xff0c;方便大家参考。 本文由光算创作&#xff0c;有可能会被剽窃和修改&#xff0c;我们佛系对待这种行为吧。 今年2023年了&#xff0c;谷歌关键词优化到底要多少钱&#xff1f; 答案是&#xff1a;价格在2w~25w左右…

c++终极螺旋丸:₍˄·͈༝·͈˄*₎◞ ̑̑“类与对象的结束“是结束也是开始

文章目录 前言一.构造函数中的初始化列表 拷贝对象时的一些编译器优化二.static成员三.友元四.内部类总结前言 前两期我们将类和对象的重点讲的差不多了&#xff0c;这一篇文章主要进行收尾工作将类和对象其他的知识点拉出来梳理一遍&#xff0c;并且补充前两篇没有讲过的…

第3集丨Java中的异常、处理方式及自定义异常汇总

目录一、异常的分类1.1 常见的运行时异常1.2 常见的检查异常1.3 继承关系二、异常处理机制三、try…catch…finally四、声明抛出异常五、人工抛出异常六、自定义异常任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为0&#xff0c;数组下标越界&a…

别学英语了,真的

文 / 王不留&#xff08;微信公众号&#xff1a;王不留&#xff09; 这两年&#xff0c;很多朋友加我微信后&#xff0c;第一句常是&#xff0c;学英语有什么用啊&#xff1f; 我会统一给出真诚答复&#xff1a;没用&#xff0c;真的。 看新闻&#xff0c;中文海量信息已经严重…

建筑行业固定资产管理解决方案

建筑行业的固定资产种类和数量都较多&#xff0c;常用的固定资产有&#xff1a;办公设备、机械、设备、工具等。设备的调拨、购置、测试、验收、建帐立卡、分类编号、技术档案、供应分配、清查盘点、提取折旧、报废、设备维修、设备保养、备件管理、设备巡检和点检等工作&#…

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例

S7-1200对于不同项目下的PLC之间进行开放式以太网通信的具体方法示例 如下图所示,打开TIA博途创建一个新项目,并通过“添加新设备”组态 S7-1200 客户端 ,选择 CPU1214C DC/DC/DC (client IP:192.168.0.102),建立新子网; 首先编写客户端程序:打开OB1编程界面,选择指令…

图片如何提取文字?

在当今信息爆炸的时代&#xff0c;图文并茂已经成为了一个广告宣传的常用方式。然而&#xff0c;图片中的文字信息往往难以获取&#xff0c;尤其对于那些需要快速获取信息的人们来说&#xff0c;阅读图片中的文字会是一项繁琐且费时的任务。现在&#xff0c;我们有一个好消息要…

如何熟练掌握Python在气象水文中的数据处理及绘图【免费教程】

pythonPython由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计&#xff0c;作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构&#xff0c;还能简单有效地面向对象编程。Python语法和动态类型&#xff0c;以及解释型语言的本质&#xff0c;使它成为多…

[python课程设计1]学生成绩管理系统

引言本课程设计使用数据库&#xff0c;熟悉了Python语言操作数据库&#xff0c;对数据库的增删改查&#xff0c;实现Qt designer界面设计以及excel表格的读写&#xff0c;代码通俗易懂&#xff0c;方便对所学知识的掌握。需求分析用类对学生成绩、代码封装使得操作使用简单&…

java开启线程的四种方法

文章目录1、继承Thread类1.1 代码实现1.2 测试结果2、实现Runnable接口2.1 方式一&#xff1a;直接实现Runnable接口2.1.1 代码实现2.1.2 测试结果2.2 方式二&#xff1a;匿名内部类2.2.1 代码实现2.2.2 测试结果3、实现Callable接口3.1 代码实现3.2 测试结果4、创建线程池4.1 …

常见帧率计算方法实际效果对比及EasyCVR平台的帧率计算方法

什么是帧、帧数、帧率&#xff1f; 帧 &#xff08;Frame&#xff09; 帧可以理解为视频或者动画中的每一张画面&#xff0c;而视频和动画特效是由无数张画面组合而成&#xff0c;每一张画面都是一帧。 帧数&#xff08;Frames&#xff09; 帧数是帧生成的数量。如果一个动画…

Scala 变量和数据类型(第二章)

第二章、变量和数据类型2.1 注释2.2 变量和常量&#xff08;重点&#xff09;2.3 标识符的命名规范2.4 字符串输出2.5 键盘输入2.6 数据类型&#xff08;重点&#xff09;回顾&#xff1a;Java数据类型Scala数据类型2.7 整数类型&#xff08;Byte、Short、Int、Long&#xff09…

OpenAI CEO喊麦ChatGPT:你很酷,但却是个“糟糕的产品”

OpenAI 联合创始人兼CEO山姆阿尔特曼&#xff08;Sam Altman&#xff09;最近在一档播客节目中称ChatGPT 为“糟糕的产品”。 阿尔特曼说&#xff0c;“人们访问的是一个有时能用&#xff0c;有时不能用的网站。”他指的是ChatGPT频繁出现的错误消息。 他补充说道&#xff1a;…

【GO】K8s 管理系统项目[API部分--Workflow]

K8s 管理系统项目[API部分–Workflow] 年终于算过完了,身体也康复了,继续学习 1. DB设置 1.1 连接配置 service/config.go package configimport "time"const (ListenAddr "0.0.0.0:9091"KubeConfig "D:\\golang\\k8s-plantform\\config\\cka&…

有序表(中):Size Balanced Tree(SBT/SB树)

1、SB树简介 本质上是一棵二叉搜索树&#xff0c;SB树全称 Size Balanced Tree&#xff0c;顾名思义&#xff0c;这是一棵通过大小&#xff08;Size&#xff09;域来维持平衡的二叉搜索树。 它不仅支持简单的二叉搜索树操作&#xff0c;也支持 Select 和 Rank。 定义一下Siz…

每天一道大厂SQL题【Day10】电商分组TopK实战

每天一道大厂SQL题【Day10】电商分组TopK实战 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&…

Linux入门篇(二)

Linux前言链接文件符号链接&#xff08;软链接&#xff09;硬链接shellshell 的类型shell的父子关系理解外部命令和内建命令外部命令内建命令Linux环境变量PATH环境变量前言 在这一章&#xff0c;我对Linux中有关shell较为深入的理解和环境变量方面知识的一个记录。同时&#x…

PBR工作流实现与对比

工作流实现工作流中的核心内容便是贴图&#xff0c;不论是UE4还是Unity都支持将PBR的参数以贴图的形式传入引擎&#xff0c;我们可以根据一个物体同一mesh或不同mesh的不同区域的属性差异来控制贴图上的属性产生不同&#xff0c;而没有贴图的话&#xff0c;一个物体只能使用一种…

Java Lambda表达式 匿名内部类 函数式接口(FunctionalInterface)

Java Lambda表达式定义背景示例匿名类实现Lambda表达式实现对比匿名类和Lambda实现Lambda表达式&#xff08;调用&#xff09;说明Lambda表达式的语法Java 1.8 新特性&#xff1a;函数式接口jdk 1.8 自带的函数式接口 &#xff08;举例&#xff09;定义 参考Oracle官网&#x…

目标检测6--R-FCN中的Position-Sensitive RoI Pooling

文章目录1.介绍2.Position-Sensitive Score Map 和 Position-Sensitive RoI Pooling3.源码参考资料欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 1.介绍 论文: Region-based Fully Convolutional Networks 代码: R-FCN 本论文作者同9.De…