禁赌毒 2023-04-24 21:28 采纳率: 50%
浏览 12
已结题

execjs和openpyxl两个包冲突

python文件中有execjs包导入JS的,也有openpyxl包写入excel的,但执行后,JS就变成乱码了,且无法恢复。是这两个包有冲突么,怎么解决

  • 写回答

2条回答 默认 最新

  • 夜凉笙歌婉 2023-04-25 00:02
    关注

    可能是因为execjs在载入JS代码时使用了不兼容的编码格式导致JS代码出现乱码,从而导致JS代码无法正常执行。你可以尝试使用以下方法解决该问题:
    修改载入JS文件时的编码格式
    在使用execjs导入JS代码时,尝试指定正确的编码格式。例如,如果你的JS代码是UTF-8编码,可以使用以下代码载入JS文件:

    import codecs
    import execjs
    
    with codecs.open('file.js', 'r', 'utf-8') as f:
        js_code = f.read()
        ctx = execjs.compile(js_code)
    
    

    启用编码格式转换
    如果你无法确定JS代码的编码格式,可以使用Python的编码格式转换工具来尝试将JS代码从乱码中恢复,例如:

    import codecs
    import execjs
    
    with open('file.js', 'rb') as f:
        js_data = f.read()
        js_code = js_data.decode('gbk', 'ignore')
        ctx = execjs.compile(js_code)
    
    

    这里假设你的JS代码的原始编码格式是gbk,如果不是,可以尝试将这里的'gbk'修改为对应的编码格式。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月10日
  • 创建了问题 4月24日

悬赏问题

  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统