python - Python 调试器 (pdb) 编码
问题描述
在通过 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
。
解决方案
推荐阅读
- entity-framework-core - 运行时 EF EnsureCreatedAsync 上的“找不到方法”
- wordpress - 分析 - IBM Watson 助手
- c++ - 尝试使用 CodeBlocks 创建一个 Sales_item.h 类
- python - 在 tkinter / Canvas 中创建菜单
- php - Laravel 8 - 连接到 SQL 数据库成功,但无法查询
- r - 如何为 vtree 对象添加标题并保存?
- sql - 它总是对 Postgresql 中的列使用 seq 扫描导致性能问题
- javascript - 为什么我的 history.push 在一个功能中起作用,而在另一个功能中起作用?
- apache-kafka - AWS MSK Kafka 是否有 Talend 组件
- python - 如何在使用 imshow 创建的热图上添加等高线?