错误展示
在执行execjs.compile 对加密信息进行解密时,报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 721: illegal multibyte sequence
,如下图所示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/aff14676f5ce4b268006cacd2088ba41.png
解决办法
此方法会修改第三方包文件,建议在使用该方法前,先对本项目建立虚拟环境。然后修改虚拟环境中的第三方包文件
定位到 execjs包,然后找到包里的 _external_runtime.py文件
在 _external_runtime.py 文件内导入包的最后 加入代码
from subprocess import Popen, PIPE
from functools import partial
Popen2 = partial(Popen, encoding="utf-8")
在 _external_runtime.py 文件中 搜索 cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=self._cwd, universal_newlines=True
内容,大概在102行左右添加代码
p = Popen2(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=self._cwd, universal_newlines=True)
并将原来的代码注释
最后,保存并重启程序即可