首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UnicodeDecodeError:在PyCharm社区中调试Python文件时的'utf-8‘

UnicodeDecodeError:在PyCharm社区中调试Python文件时的'utf-8‘
EN

Stack Overflow用户
提问于 2021-04-21 06:04:05
回答 5查看 2.1K关注 0票数 5

当前结论:

utf-8->utf-8 big->ansi文件的encodingconverted -> utf-8在各转换之后重新打开文件。

在观察了一段时间之后,就没有这样的错误了。

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

错误如下:

代码语言:javascript
复制
Traceback (most recent call last):
  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
    r = r.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 1022-1023: unexpected end of data

我试图将下面的代码添加到文件的标题中,但有时我仍然会遇到错误,如何解决呢?

代码语言:javascript
复制
#!/usr/bin/env Python
# coding=utf-8

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-04-21 07:38:39

问题没有一个答案,正如问题中所描述的那样。有许多问题可能导致指定的错误,所以最好在PyCharm环境中解决几个可能的因素。

  1. 每个.py文件(或任何其他文件)都有一个编码。.py源代码文件的默认编码是Unicode UTF-8。初学者经常面临这个问题,因此让我们从正式文档中找出相关的引文(以缩短任何不必要的阅读时间): Python的Unicode支持 Python源代码的默认编码是UTF-8,因此您可以简单地在字符串文本中包含一个Unicode字符。

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

  1. PyCharm IDE有许多编码配置,可以从全局到项目,再到文件路径,依次进行细化。默认情况下,所有内容都应该设置为UTF-8,特别是源代码。请参阅正式的PyCharm文档配置文件编码设置
  2. 以上情况的例外应该是,如果您正在处理外部数据文件,在这种情况下,您的源代码仍应保留为UTF-8,并且数据文件以它所需的任何编码方式打开。大多数关于UnicodeDecodeError的问题都是关于在使用open()函数到打开一些数据文件时指定正确的文件编码(它们不是关于编写代码的源文件的编码)。
  3. 当源文件导致此错误时,常见的原因是复制粘贴或打开后,即未在UTF-8中编码的源代码文件。(当您从未用UTF-8编码的文件中复制并且IDE不会自动将您要复制粘贴的内容转换到编辑器时,复制粘贴是特别出乎意料的)。这可能会导致上述错误。因此,您应该缩小哪个源代码文件的编码不是UTF-8,并转换它。

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

文件"D:\Program \JetBrains\ 2020.3.3\plugins\python-ce\helpers\pydev_pydevd_bundle\pydevd_comm.py“

票数 2
EN

Stack Overflow用户

发布于 2022-03-16 18:58:16

我也遇到了同样的问题,并在更改了解释器设置中使用的python可执行文件的情况后,最终修复了它,正如解释的这里所解释的那样。长话短说,有时PyCharm尝试使用Python (大写为"P“)而不是python来执行venv目录中的符号链接。更改后,我可以再次调试。

票数 1
EN

Stack Overflow用户

发布于 2022-04-11 07:59:45

看看Stefan Ukena在这个帖子上的回答:

https://youtrack.jetbrains.com/issue/PY-14497#focus=Comments-27-5243196.0-0

如果链接失效,引用如下:

您可能需要在Pycharm >设置中更改Python解释器。在我的例子中(使用pipenv),它指向/Library/./bin/ python,大写字母P。打开文件夹并检查,我发现文件或符号链接实际上是带有小写p的python。在Pycharm设置中,将它从./python改为./python解决了这个问题。(之后我不得不重新启动Pycharm。)

它也帮助了我,但只有当我换成了琵琶,而不是通常的复仇。我将Python更改为python,调试器工作正常,但仍然收到错误/警告:

代码语言:javascript
复制
OSError: [Errno 9] Bad file descriptor 

但不管怎样都管用。如果没有调试器,它将按预期工作,并且不会出现上述错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67190102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档