【发布时间】:2016-09-05 23:44:45
【问题描述】:
出于调试目的,我正在尝试记录其中包含 unicode 字符串的内容字典:
logging.info(str(data))
data 的结构如下:
{'whatever®': 1}
显然,当调用str() 时,UnicodeEncodeError 会爆炸,因为它会尝试使用底层的 ASCII 编解码器将 ® 符号转换为字节串。
由于 dict 实例没有 __unicode__ 方法,除了为这种从不转换 unicode 字符串的数据编写自己的 toString 函数之外,实现我想要做的事情的最佳方法是什么到字节串?在 stdlib 或我可以使用的任何外部库中是否有我不知道的实用程序函数?
【问题讨论】:
-
Python 2.7 不会以这种方式显示字典。它到底是什么样子的?例如,在我的 UTF-8 终端上,如果我输入
data = {'whatever®':1},然后查看data,我会得到{'whatever\xc2\xae': 1},这是一个以UTF-8 编码的字节字符串。这可以毫无问题地记录下来。你到底有什么?
标签: python-2.7 unicode utf-8