字符串编码解码汇总记录

场景 ①

python 实现 js 的 escape 的编码、解码

解决方法

通过 python 标准库 urllib 即可实现。

编码
In [11]: from urllib import parse

In [12]: s='Helo 世界'

In [14]: encode_s=parse.quote(s,encoding='unicode-escape').replace('%5Cu','%u')

In [15]: encode_s
Out[15]: 'Helo%20%u4e16%u754c'
解码
In [17]: decode_s=parse.unquote(encode_s.replace('%u', '\\u').encode().decode('unicode-escape'))

In [18]: decode_s
Out[18]: 'Helo 世界'

场景 ②

类似 http%253A%252F%252F 之类字符串的编码、解码

解决办法

简单解释: 这种编码其实是 urllib.parse 对字符串(URL)进行了两次编码导致的。

即是说:
编码: urllib.parse.quote 编码两次字符串即可
解码: urllib.parse.unquote 解码两次字符串即可

Table of Contents