zoukankan      html  css  js  c++  java
  • execjs使用时异常

    一.异常信息(...gbk.....)

    UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa1 in position 26: illegal multibyte sequence
    

    解决办法

    进入报错源码

    libsubprocess.py

    因为是codec相关报错

    就搜索encoding,为什么搜这个就是代码写多了感觉

    我们会发现这样一段

     def __init__(self, args, bufsize=-1, executable=None,
                     stdin=None, stdout=None, stderr=None,
                     preexec_fn=None, close_fds=True,
                     shell=False, cwd=None, env=None, universal_newlines=None,
                     startupinfo=None, creationflags=0,
                     restore_signals=True, start_new_session=False,
                     pass_fds=(), *, encoding=None, errors=None, text=None):
     #encoding是空怪不得是gbk报错
    #直接修改encoding=utf8
    

    解决啦~~

    二.异常信息(没有window对象)

    execjs._exceptions.ProgramError: TypeError: __g._encrypt is not a function
    

    解决办法

    我们execjs除了nodejs我们还需要浏览器环境,我们浏览器上还需要document以及window对象所有呢我们要安装环境

    执行npm install jsdom

    代码.py中我们要修改内容
    #js_obj = execjs.compile(js_codex)修改成
    js_obj = execjs.compile(js_code,cwd='node_modules'),
    #也就是导入我们下载完成后的node_modules的文件
    

    然后呢我们在Js_encryption.js

    开头添加代码

    const jsdom = require("jsdom");
    const { JSDOM } = jsdom;
    const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
    window = dom.window;
    document = window.document;
    XMLHttpRequest = window.XMLHttpRequest;
    //固定写法别想那么多
    
  • 相关阅读:
    convex hull
    不努力,你就没有资格谈天赋
    “数数”的感悟
    平行四边形法则的感悟
    ansys 15 Linux 安装问题
    SHV-E210S 刷4.3
    fedora 安装 Oracle11g 遇到的问题
    ObjectArx开发常用资料
    MFC入门(二)
    MFC入门(三)
  • 原文地址:https://www.cnblogs.com/pythonywy/p/11716296.html
Copyright © 2011-2022 走看看