Python:如何使用UTF-8字符打印?

时间:2015-01-05 17:33:16

标签: python python-2.7 printing utf-8

我已经花了好几个小时在Python 2.7.6中解决这个UTF-8问题。

我有一个包含UTF-8字符的字符串列表,如下所示:

findings=['Quimica Geral e Tecnol\xf3gica I', 'Quimica Geral e Tecnol\xf3gica II', '\xc1lgebra Linear']

我正在尝试打印字符串:

for finding in findings:
      print finding

输出结果为:

Quimica Geral e Tecnolgica I
Quimica Geral e Tecnolgica II
lgebra Linear

我也试过这个:

for finding in findings:
      print( "%s"%(finding))

我得到了相同的输出。

如果我尝试保存在文件中:

file = open("teste.txt", "w")
for finding in findings:
  file.write("%s\n" % finding)
file.close()  

它有效,输出是(请注意拉丁字符 - 重音符号):

Quimica Geral e Tecnológica I
Quimica Geral e Tecnológica II
Álgebra Linear

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要使用unicode函数将字符串转换为unicode,并使用unicode-escape(在Python源代码中生成适合作为Unicode文字的字符串)作为编码:

>>> for i in findings :
...    print unicode(i,'unicode-escape')
... 
 Quimica Geral e Tecnológica I
 Quimica Geral e Tecnológica II
 Álgebra Linear

补充:I / O系统构建为一系列图层,当您打开文件进行编写时,使用io.TextIOWrapper图层作为文本处理层,自动对Unicode进行编码和解码。