Python使用 execjs 出现 gbk报错的问题记录和解决

 

1.

在使用execjs调用js的时候产生的问题。
一个很奇怪的问题,家里和办公的电脑同一个包,办公电脑却报错。

2.错误片段

Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\codes\python\lib\threading.py", line 917, in _bootstrap_inner
    self.run()
  File "C:\codes\python\lib\threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "C:\codes\python\lib\subprocess.py", line 1238, in _readerthread
    buffer.append(fh.read())
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 41: illegal multibyte sequence

3.

问题解决:

按提示进入 C:\codes\python\lib\subprocess.py( 双击报错提示,可快捷进入)
在 class Popen(object): 下的,
将参数 encoding=“None” 修改为 encoding=“utf-8” 即可。

    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="utf-8", errors=None, text=None):
        """Create new Popen instance."""
        _cleanup()

 

 

 

 

 

 

搜索