我的任务是检查文件的编码。实际上,我的问题是python在其encoding
函数中提供的编码格式。我是python的新手,所以我认为我忽略了一些东西。
我不明白以下几点:
当我对具有utf-8
BOM格式的文件进行编码时,编码功能会告诉我它是utf-8
。
当我检查iso8859_6格式时,它告诉我即使文件具有iso8859_6格式,他也无法识别此格式,但是如果我检查“ cp720”,则它可以识别它
根据此documentation,它应该能够识别iso8859_6
格式
我试图在www中找到可以理解的东西,但是找不到。
import codecs
import io
class Format:
def __init__(self, file_Name):
self.file_Name = file_Name
def check_coding(self):
encoding_formats = ['iso8859_6','utf-8', 'utf-8-sig', 'ascii']
for ex in encoding_formats:
try:
fh = codecs.open(self.file_Name, 'r', encoding=ex)
fh.readlines()
fh.close()
except UnicodeDecodeError:
print('Die angelieferte Datei ist nicht nach %s kodiert' % ex)
response = False;
else:
print('Angelieferte Datei besitzt folgende Kodierung: %s ' % ex)
response = True;
break
return response
file_Name
的格式是utf-8
BOM,因此不应告诉我它是utf-8
。
如果file_Names
格式为iso8859_6
,则表明即使没有,它也没有以这种格式编码。