Python调试器(pdb)编码

时间:2019-01-11 20:02:18

标签: python python-2.7

在通过pdb处于调试模式时,python存在以下问题。

似乎调试模式下的python与正常模式下的字符集不同。我会尝试在以下几点上进行更好的解释:

  • 在调试模式下,我得到以下结果
(pdb) "ó"
'\xa2'
(pdb) (u"ó")
u'\xa2'
(pdb) print u"ó"
¢
  • 在正常模式下,我得到以下信息
>>> "ó"
'\xa2'
>>> u"ó"
u'\xf3'
>>> print u"ó"
ó

这两种模式似乎都是在cp858中编码的,而调试模式似乎是使用cp1252编解码器(这是我用# -*- coding: cp1252 -*-明确声明的一种)解码的,而普通模式似乎是在cp858中解码的。我们可以从以下结果中看到证据:

>>> '\xa2'.decode("cp858")
u'\xf3'
>>> '\xa2'.decode("cp1252")
u'\xa2'

问题的重要性在于,在调试模式下,我看不到具有unicode字符串的对象的值(我使用的是熊猫,所以我所有的对象)您知道如何强制调试器使用相同的编解码器来编码和解码字符串?我所有进入调试模式的都是关于字符串不匹配的错误。

注意:我正在通过命令python -i mycode.py从控制台运行该程序。

0 个答案:

没有答案