python 运行 execjs 出现错误 UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\ufffd‘
程序员文章站
2022-04-02 11:12:15
python 运行 execjs 出现错误 UnicodeEncodeError: ‘gbk‘python 运行 execjs 出现错误 UnicodeEncodeError: ‘gbk‘...
异常解读
该异常的格式一般为:
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."""
保存文件,解决问题。
附录
本系列文章只供记录 Python 日常开发过程中 偶遇 BUG,提供给学生作为参考数据与解决方案用,属于记录型博客,有缘分看到的读者希望可解决你的问题。
错误提示样板,可以与你的错误进行比对。
Traceback (most recent call last):
File "g:/MyFiles/xiaoke/a.py", line 38, in <module>
zh("")
File "g:/MyFiles/xiaoke/a.py", line 19, in zh
obj = docjs.eval('obj')
File "F:\P3.6\lib\site-packages\execjs\_abstract_runtime_context.py", line 27, in eval
return self._eval(source)
File "F:\P3.6\lib\site-packages\execjs\_external_runtime.py", line 78, in _eval
return self.exec_(code)
File "F:\P3.6\lib\site-packages\execjs\_abstract_runtime_context.py", line 18, in exec_
return self._exec_(source)
File "F:\P3.6\lib\site-packages\execjs\_external_runtime.py", line 87, in _exec_
output = self._exec_with_pipe(source)
File "F:\P3.6\lib\site-packages\execjs\_external_runtime.py", line 103, in _exec_with_pipe
stdoutdata, stderrdata = p.communicate(input=input)
File "F:\P3.6\lib\subprocess.py", line 863, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "F:\P3.6\lib\subprocess.py", line 1106, in _communicate
self._stdin_write(input)
File "F:\P3.6\lib\subprocess.py", line 801, in _stdin_write
self.stdin.write(input)
UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in position 160: illegal multibyte sequence
爬虫 100 例课程宣传
爬虫百例教程导航链接 : https://blog.csdn.net/hihell/article/details/86106916
本文地址:https://blog.csdn.net/hihell/article/details/109528220
推荐阅读
-
python 运行 execjs 出现错误 UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\ufffd‘
-
解决Python3控制台输出的UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\u30fb‘ in position 0:问题
-
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
-
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
-
python 运行 execjs 出现错误 UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\ufffd‘