使用pdb时,Django出现UnicodeDecodeError错误

3

我注意到每次我输入一个:

import pdb; pdb.set_trace()

在我的西班牙语Django项目中,如果字符串中有特定的Unicode字符,例如:
Gracias por tu colaboración

我在Django调试窗口中遇到了UnicodeDecodeError,错误信息是“ordinal not in range(128)”。这个问题让我很难调试我的应用程序。另一方面,如果我使用ipdb,我会得到类似以下的信息:

ERROR - failed to write data to stream: <open file '<stdout>', mode 'w' at 0x7f3d43e34140>

我已经谷歌搜索了解决方案,但看起来只有我遇到了这个问题 :)


代码在没有pdb的情况下能否正常工作? - Ankit Jaiswal
这实际上是最让我惊讶的,没有pdb它可以完美运行。 - maraujop
2个回答

1

我发现另一个程序员将此添加到视图文件开头,这会破坏pdb和ipdb的行为,就像我所描述的:

import sys, codecs
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)

删除或注释掉这些行就解决了问题,谢谢。


0
通常情况下,如果您的文件中有非ASCII字符(例如在注释或字符串中),那么可能会出现该错误。 如果您尝试在没有ipdb / pdb的情况下打开它,Django将显示回溯。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接