文章目录

每种语言都有其关键字和保留字符,这样为了能这些特殊字符能正常显示,就需要转义,如Python中\n代表回车,HTML中 代表空格等等。
Python中的''是转义控制符,如果要表达\本身则需要使用'\',常见于Windows系统的路径中(使用'/'则不需要转义)。

unicode转义

有时候我们在响应文本中会看到一些\u开头的字符串,如下例。

响应体文本中,name后面对应是"\u5f20\u4e09",这是HTTP请求在传输时为了确保符合ASCII编码对其他字符集做的unicode转义。
注意这个只是打印结果,我们看看res.text的本来样子。

可以看出name的实际值是"\u5f20\u4e09","\u5f20\u4e09" != "\u5f20\u4e09",看下如下例子。

可见 "\u5f20\u4e09" 就是"张三",而"\u5f20\u4e09"是一个显示为"\u5f20\u4e09"的字符串。

unicode转义-解码

如何将"\u5f20\u4e09"转为"张三"呢?方法如下
先按utf-8编码回二进制,然后按unicode-escape方式解码为正常文本

GBK转义

有些中文网页中有时会使用GBK编码,形式为\x开头的字符如。

这个二进制字符串b'\xd5\xc5\xc8\xfd'就是"张三",但如果我们拿到一个"\xd5\xc5\xc8\xfd"的普遍字符串呢?
操作方法如下。

无论是"\xd5\xc5\xc8\xfd"还是"\xd5\xc5\xc8\xfd"都可以。

html转义

在有些情况下我们需要解码html文档中的转义字符,或者进行编码,操作如下。

url编码

在url中需要对一些特殊字符进行编码,比如在浏览器地址栏中输入https://httpbin.org/get?name=张三&age=12'
然后复制-粘贴,你会发现网址变为了https://httpbin.org/get?name=%E5%BC%A0%E4%B8%89&age=12,这就是url为确保ASCII对特殊字符集非ASCII编码进行的编码。
如何解码呢?方法如下。

如果想要进行urlencode编码,则需要使用quote和urlencode,quote对字符串进行编码,一般只用于单个参数值,urlencode则对一组字典格式的参数进行编码组装。
示例如下:

base64编码

编码和加密的不同在于,编码一般为了传输或者压缩,支持解码。加密后则一般不能反解。
base64一般用于在接口中,将图片或媒体变为一种固定长度的字符串形式,方便传输。
base64编码解码方法如下。
编码

HTTPX 基础教程-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客