美文网首页
execjs编码报错问题解决方案

execjs编码报错问题解决方案

作者: ArtioL | 来源:发表于2021-09-14 11:04 被阅读0次

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

    相关文章

      网友评论

          本文标题:execjs编码报错问题解决方案

          本文链接:https://www.haomeiwen.com/subject/hjhcgltx.html