likes
comments
collection
share

【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案

作者站长头像
站长
· 阅读数 9

简介

js逆向过程中,通过execjs执行JavaScript代码时,可能出现此报错。

报错展示

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb9 in position 757: illegal multibyte sequence AttributeError: 'NoneType' object has no attribute 'replace'

【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案

解决方案

一、修改源码(不推荐)

步骤1: ctrl+鼠标左键,进入源码

【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案

步骤2: 滚轮向上滑动(疯狂向上),找到 init,修改encoding值,改为'utf-8'

修改前 【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案 修改后 【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案

二、添加代码(推荐)

在引入execjs前加入以下代码

# functools是python的标准库,直接引用就行了,无需安装。
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")

错误示范 【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案

正确示范 【Python】使用PyExecJS库出现UnicodeDecodeError和AttributeError报错的解决方案