在通过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字符串的对象的值(我使用的是pandas,所以我的所有对象)您知道如何强制调试器使用相同的编解码器来编码和解码字符串吗?我在调试模式下得到的只是关于字符串不匹配的错误。你知道吗
注意:我正在通过命令python -i mycode.py
从控制台运行程序。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐