本文主要介绍某些爬虫在遇到%u627E%u4E0A%u95E8这种类似unicode编码的str类型数据时,无法直接使用decode('unicode-escape')方法来转成中文时的一个转码的解决方法。
k后面的值即为搜索的关键字
value为 %u627E%u4E0A%u95E8
它只不过是将 \ (反斜杠) 换成了 %( 百分号)。
那么问题来了,我们如何将一个str类型的中文,转换成另一个str类型的%u627E%u4E0A%u95E8 编码呢?
一、中文编码成%u类型编码
将一段中文转成unicode编码
print('找来了'.encode('unicode-escape'))
b'\\u627e\\u6765\\u4e86'
转换完成后的结果是一个bytes类型,我们将其转换为str类型
print('找来了'.encode('unicode-escape').decode())
\u627e\u6765\u4e86
再用%百分号替换\\双反斜杠后,就得到了转码之后的unicode类型字符串(%u****)
print('找来了'.encode('unicode-escape').decode().replace('\\','%'))
%u627e%u6765%u4e86
二、unicode类型的字符串转换成中文
只需要将这三步给逆向回去,也就可以将一段unicode类型的str转换成中文了。
print('%u627e%u6765%u4e86'.replace('%','\\').encode().decode('unicode-escape'))
效果演示:
https://fsfc.fszj.foshan.gov.cn/loupan/xiaokong/view/69110/%25u5357%25u6D77%25u78A7%25u6842%25u56ED%25u5E7C%25u513F%25u56ED.html