【问题标题】:Django UnicodeDecodeError when using pdb使用 pdb 时出现 Django UnicodeDecodeError
【发布时间】:2011-04-14 01:43:56
【问题描述】:

我每次放一个:

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>

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

【问题讨论】:

  • 没有 pdb 代码可以工作吗?
  • 这实际上是最让我震惊的,没有 pdb 它可以完美运行。

标签: django unicode pdb


【解决方案1】:

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

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

删除或评论这些行可以解决问题,谢谢。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-09
      • 1970-01-01
      • 2019-06-17
      • 2019-01-10
      • 2020-04-08
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多