【发布时间】:2015-05-08 13:06:20
【问题描述】:
我有一个二进制文件,我想提取所有 ascii 字符,同时忽略非 ascii 字符。目前我有:
with open(filename, 'rb') as fobj:
text = fobj.read().decode('utf-16-le')
file = open("text.txt", "w")
file.write("{}".format(text))
file.close
但是,我在写入文件 UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 0: ordinal not in range(128) 时遇到错误。我如何让 Python 忽略非 ascii?
【问题讨论】:
-
您确定文件中没有Unicode字符吗?
-
您的输入文件似乎被编码为 utf-16-le,因此您应该在打开文件时指定该编码。在 Python 2 中你需要使用 codecs.open,但在 Python 3 中你可以使用普通的内置 open
标签: python non-ascii-characters