execjs编码报错问题解决方案

在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
又可以愉快的逆向了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容