【发布时间】:2016-07-08 20:34:59
【问题描述】:
这一定是一项微不足道的任务,但我无法处理。 我有一个看起来像这样的 json。
{'
city': u'\\u0410\\u0431\\u0430\\u043a\\u0430\\u043d',
'language':{
u'\\u0410\\u043d\\u0433\\u043b\\u0438\\u0439\\u0441\\u043a\\u0438\\u0439': 5608,
u'\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0438\\u0439': 98
}
},
我正在尝试将 unicode 字符串转换为 utf-8。
string=u'\u0410\u0431\u0430\u043a\u0430\u043d'
string.encode('utf-8')
我有
'\xd0\x90\xd0\xb1\xd0\xb0\xd0\xba\xd0\xb0\xd0\xbd'
代替:
u'Абакан'
我做错了什么?
【问题讨论】:
-
您看到的是字节字符串的
repr,它不会尝试显示实际字符。试试printing。 -
您的示例 JSON 不是真正的 JSON。如果这些是 Python 值,则您在这些 unicode 字符串中具有双重编码
\uunicode 转义。这真的是您拥有的还是您手动输入的? -
您的
string样本值是正确的unicode对象,您可以直接打印(print string),同样适用于编码值(print string.encode('utf8'))。您对 Python 交互式解释器回显的 字符串表示 感到困惑,或者用于显示字典或列表等容器的内容。表示是 ASCII 安全的调试值。
标签: python unicode utf-8 encode