Python:如何使用 UTF-8 字符打印?
Python: How to print with UTF-8 characters?
我已经尝试了几个小时来解决 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
我做错了什么?
您需要使用 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 .
我已经尝试了几个小时来解决 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
我做错了什么?
您需要使用 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 .