3

每次我放一个:

import pdb; pdb.set_trace()

在我的西班牙语 Django 项目中,如果我在字符串中有特定的 Unicode 字符,例如:

Gracias por tu colaboración

我在 Django 调试窗口中得到一个带有“序数不在范围内 (128)”的 UnicodeDecodeError。问题是我无法轻松调试我的应用程序。另一方面,如果我使用 ipdb,我会得到如下信息:

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

我已经用谷歌搜索找到解决方案,但看起来我是唯一一个遇到这个问题的人:)

4

2 回答 2

1

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

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

删除或评论这些行解决了这个问题,谢谢。

于 2010-09-18T12:33:30.187 回答
0

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

于 2014-04-14T13:29:36.300 回答