在Python中打印非ascii文本

时间:2013-09-17 10:28:57

标签: python-2.7 unicode

我有一个Facebook群组名称和群组ID的字典,使用图谱API从Facebook上搜索。

当我使用

打印时
for i in name:
  print i['name']

它会打印所有组名,甚至是其他语言的组名,例如阿拉伯语和法语。

但是对于这个陈述

check=raw_input("Want to post in %s?(Y/N)" % i['name'])

未打印包含非英文字符的组名。 为什么会这样?

1 个答案:

答案 0 :(得分:1)

"Want to post in %s?(Y/N)"不是Unicode。

使用u

作为前缀
u"Want to post in %s?(Y/N)" % i['name']

但是,raw_input()不喜欢将Unicode文本作为提示。因此,您需要使用标准输出使用的编码对其进行编码。

prompt = u"Want to post in %s?(Y/N) " % i['name']
check = raw_input(prompt.encode(sys.stdout.encoding))