在 PyCharm 社区中调试 Python 文件时出现 UnicodeDecodeError: 'utf-8'

jar*_*ied 6 python utf-8 pycharm

目前结论:

\n

encoding文件的内容convertedutf-8-> utf-8 big-> ansi-> utf-8每次转换后重新打开文件。

\n

观察一段时间后,没有出现这样的错误

\n
\n

当我使用PyCharm调试.py文件时,same文件有时出现UnicodeDecodeError,有时\xe2\x80\x99正常。我的操作系统是Windows 10,PyCharm版本是2020.3.3社区版。

\n

错误如下:

\n
Traceback (most recent call last):\n  File "D:\\Program Files\\JetBrains\\PyCharm Community Edition 2020.3.3\\plugins\\python-ce\\helpers\\pydev\\_pydevd_bundle\\pydevd_comm.py", line 301, in _on_run\n    r = r.decode('utf-8')\nUnicodeDecodeError: 'utf-8' codec can't decode bytes in position 1022-1023: unexpected end of data\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试将以下代码添加到文件头,但有时仍然出现错误,如何解决?

\n
#!/usr/bin/env Python\n# coding=utf-8\n
Run Code Online (Sandbox Code Playgroud)\n

我找到了另一种用记事本另存为UTF-8文档的方法。我尝试了一下,但有时还是会出现错误。

\n

bad*_*der 2

正如问题中所描述的那样,该问题没有单一的答案。许多问题都可能导致指示的错误,因此最好在 PyCharm IDE 的上下文中解决几个可能的因素。

\n
    \n
  1. 每个 Python 文件.py(或任何其他文件)都有一个编码。a的默认编码.py源代码文件这个问题是初学者经常遇到的问题,所以我们从官方文档中找出相关的引用(以减少不必要的阅读时间):

    \n
    \n

    Python\xe2\x80\x99s Unicode 支持

    \n

    Python 源代码的默认编码是 UTF-8,因此您只需在字符串文字中包含 Unicode 字符即可。

    \n
    \n

    这意味着在大多数情况下您不需要编码字符串,请参阅Python 源代码编码 - PEP 263。当前的做法是默认使用 UTF-8 编码源文件,并省略模块顶部的编码字符串(这也更简洁)。

    \n
  2. \n
  3. PyCharm IDE 具有许多可以连续细化的编码配置,从全局到项目,再到文件路径。默认情况下,所有内容都应设置为 UTF-8,尤其是源代码。请参阅 PyCharm 官方文档配置文件编码设置

    \n
  4. \n
  5. 上述情况的例外情况是,如果您正在处理外部数据文件,在这种情况下,您的源代码仍应保留为 UTF-8,并且数据文件应使用所需的任何编码打开。有关的大多数问题都是关于在使用该函数打开某些数据文件UnicodeDecodeError时指定正确的文件编码 (它们与您编写代码的源文件的编码无关)。open()

    \n
  6. \n
  7. 当您的源文件导致此错误时,常见原因是复制粘贴或打开未以 UTF-8 编码的源代码文件。(当您从未使用 UTF-8 编码的文件进行复制并且 IDE 不会自动将您复制粘贴的内容转换到编辑器中时,复制粘贴尤其令人意外)。这可能会导致上述错误。因此,您应该缩小哪个源代码文件的编码不是 UTF-8 的范围并进行转换。

    \n
  8. \n
\n

我们无权访问您的项目文件,但我看到的错误消息是调试器试图打开未以 UTF-8 编码的用户源代码文件,这与 IDE 配置和模块编码相反。

\n
\n

文件“D:\\Program Files\\JetBrains\\PyCharm Community Edition 2020.3.3\\plugins\\python-ce\\helpers\\pydev_pydevd_bundle\\pydevd_comm.py”

\n
\n