【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案
简介
js逆向过程中,通过execjs执行JavaScript代码时,可能出现此报错。
报错展示
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb9 in position 757: illegal multibyte sequence
AttributeError: 'NoneType' object has no attribute 'replace'
解决方案
一、修改源码(不推荐)
步骤1: ctrl+鼠标左键,进入源码
步骤2: 滚轮向上滑动(疯狂向上),找到 init,修改encoding值,改为'utf-8'
修改前
修改后
二、添加代码(推荐)
在引入execjs前加入以下代码
# functools是python的标准库,直接引用就行了,无需安装。
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")
错误示范
正确示范
转载自:https://juejin.cn/post/7352845644737445915