【发布时间】:2012-08-30 13:33:13
【问题描述】:
我使用 Python 3.2 处理带有 utf-8 文本的文本文件:
import codecs
import csv
f = codecs.open('07362853300091_trade_turquoise_errNo_031.csv',
'r','utf-8', 'ignore')
text = csv.reader(f, delimiter=',', quotechar='"')
for row in text:
for item in row:
print(item)
工作正常。
我现在必须使用 Python 2.7 解释器运行代码并打印:
'\xd7\x97\xd7\x99\xd7\x95\xd7\x91\xd7\x94\xd7\xa8\xd7\xa2\xd7\xa6\xd7\x99\xd7\x95\xd7\x9f'
我试过了
item.encode('utf-8')
print unicode(item, errors='ignore')
(还尝试了其他一些 encode() 和 unicode() 函数的组合),它总是打印:
你'\u05de\u05e9\u05d9\u05db\u05ea \u05e9\u05d9\u05e7'
如何在 Python 2.7 中将 unicode 文本打印到控制台?
【问题讨论】:
-
Unicode 字符串看起来是正确的;这是 'חיוב הר עציון' 的转义表示。
-
type(item)在item.encode('utf-8')之前和之后是什么?我猜item是一个unicode 对象。编码后,它是 Python 2.7 中的str对象。只需打印此内容,无需使用unicode()进行后续转换。