UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 9659: illegal multibyte

py拿不到js文件里破解的参数加密,网上改pycharm的setting默认编码的方法也搞了,其他方法也试了都没啥用,求解!

img

img

使用execjs获取返回值包含中文可能会出错,在引入execjs之前,加上这个

import subprocess
from functools import partial #用来固定某个参数的固定值
subprocess.Popen=partial(subprocess.Popen,encoding='utf-8')

来源:

或者直接改subprocess.py

  • 异常解读
    该异常的格式一般为:
    UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\ufffd’ in position 160: illegal multibyte sequence
    该异常出现的场景为在 Windows 电脑下使用 Python execjs 运行指定的 JS 文件,但 JS 文件中包含中文。
  • 异常解决方案
    该问题解决需要 修改 你电脑 Python 安装目录下 lib 文件夹里面的一个文件,名字叫做 subprocess.py
    例如在我本地为 :通过任意文本编辑器打开该文件,在文件中检索 encoding,找到如下位置:
    修改 encoding=None 为 encoding = "utf-8" 。

代码位置:


    def __init__(self, args, bufsize=-1, executable=None,
                 stdin=None, stdout=None, stderr=None,
                 preexec_fn=None, close_fds=_PLATFORM_DEFAULT_CLOSE_FDS,
                 shell=False, cwd=None, env=None, universal_newlines=False,
                 startupinfo=None, creationflags=0,
                 restore_signals=True, start_new_session=False,
                 pass_fds=(), *, encoding="utf-8", errors=None):
        """Create new Popen instance."""


保存文件,解决问题。
————————————————
版权声明:本文为CSDN博主「梦想橡皮擦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hihell/article/details/109528220

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632