execjs编码报错问题解决方案

2021-09-14  本文已影响0人  ArtioL

在windows下由于execjs本质是用子进程调用shell去执行js 会导致编码错误的问题 默认是gbk

网上主要解决该方案的问题都是修改subprocess库的Popen实例化方法的encoding默认值
个人不赞同 每次都改一次问题很大

在本地代码添加一段代码

#popen.py
import subprocess
from functools import partial

subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")

在Popen实例化方法下打个断点 测试是否生效


image.png

测试一下

# 注意:这里必须在execjs之前导入 让hook生效
import popen

import execjs

if __name__ == '__main__':
    execjs.compile('function a(){}')

这里注意先导入popen这个我们修改subprocess文件
run一下


image.png

ojbk
又可以愉快的逆向了

上一篇下一篇

猜你喜欢

热点阅读