【发布时间】:2016-06-10 11:05:35
【问题描述】:
我有这个代码:
res = conn.getresponse()
data = res.read()
doc = xmltodict.parse(data)
risultati = doc['result']['data']
mieiris = json.loads(risultati)
for k in mieiris['Headword']['Component']:
try:
print(k['Text'])
except KeyError:
pass
except UnicodeEncodeError:
uhm = k['Text'].encode("utf-8")
print(uhm.decode("unicode_escape"))
返回给我这个结果:
b'ci\xc3\xa0-o'
inter.
si usa come saluto amichevole e confidenziale quando ci si incontra o ci si lascia
b'Dal ven. {\\i s{#c-v-r#}iao}, propr. \xe2\x80\x98(sono vostro) schiavo\xe2\x80\x99'
现在:我不知道如何使用 utf-8 编码正确显示最后一个字符串。你有什么提示吗?
【问题讨论】:
-
这一切似乎都没有必要——如果你的控制台的语言环境不能(或认为它不能)支持你正在打印的字符,你应该只得到
UnicodeEncodeError。您应该修复控制台或写入文件。你最后的encode()/decode()完全疯了。这听起来像是典型的 X-Y 问题 -
嗨@AlastairMcCormack,是的,这太疯狂了;)为了获得正确格式化的字符串,我做了很多试验,这是我的最后一个;)我不能写入文件,这将是一个电报机器人,因此控制台不会是我的最终输出。
-
:) 好的,所以您正在解决一个问题,即您的特定控制台中的限制在您的最终应用程序中不存在 - 这是一个坏主意 :) 您是否正在编写自己的电报机器人(不确定 UTF-8 如何用莫尔斯语表达)或其他人的?就目前而言,不清楚你在问什么
-
我发现模块 'uniencode' 解决了我的问题 :) 无论如何我正在写一个 Telegram 机器人。感谢您的宝贵时间!