【发布时间】:2011-03-17 04:56:42
【问题描述】:
如标题所述,我想检查给定的文件对象(以二进制流形式打开)是否为有效的 UTF-8 文件。
有人吗?
谢谢
【问题讨论】:
如标题所述,我想检查给定的文件对象(以二进制流形式打开)是否为有效的 UTF-8 文件。
有人吗?
谢谢
【问题讨论】:
你可以这样做
import codecs
try:
f = codecs.open(filename, encoding='utf-8', errors='strict')
for line in f:
pass
print "Valid utf-8"
except UnicodeDecodeError:
print "invalid utf-8"
【讨论】:
codecs.open("path/to/file", encoding="utf-8", errors="strict").readlines() 而不是 3。
def try_utf8(data):
"Returns a Unicode object on success, or None on failure"
try:
return data.decode('utf-8')
except UnicodeDecodeError:
return None
data = f.read()
udata = try_utf8(data)
if udata is None:
# Not UTF-8. Do something else
else:
# Handle unicode data
【讨论】: