https://blog.csdn.net/YungGuo/article/details/110197818
apache log 中,参数之前的url是 \x , 参数是 %
例如
1
|
|
%
如果是 % 直接用 urldecode
1
|
|
\x
1 2 |
|
上面这个是utf-8编码,但数据类型是字符串类型,而不是bytes类型的utf-8编码。
这样会导致一个结果:如果直接输出,显示的是乱码,也不能使用decode进行utf-8解码得到中文。
可能有人会说,既然得到的是utf-8编码,在前面加上 “ b ” ,字符串就是bytes类型了,再利用decode进行解码不就可以得到中文吗?但显然,这是行不通的,你不可能去手动一个个添加,那有没有其他方法呢?
答案肯定是有的,既然知道这个字符串是utf-8编码的,那么我换种方式,只要将字符串中的 “ \x ” 改为 “ % ” 利用urllib中的unquote方法解码就可以得到中文了,因为url中的中文utf-8编码和这里的区别就是url中编码是%开头。
1
|
|