У меня есть задача проверить кодировку файла.На самом деле, моя проблема в форматах кодирования, которые предоставляет python в своей функции encoding
.Я очень плохо знаком с Python, поэтому думаю, что я что-то упустил.
Я не могу понять следующие моменты:
Когда я кодирую файл, которыйимеет формат utf-8
BOM, тогда функция кодирования сообщает мне, что это utf-8
.
Когда я проверяю формат iso8859_6, он говорит мне, что он не может распознатьэтот формат, хотя файл имеет формат iso8859_6, но в случае, если я проверил «cp720», он сможет его распознать
Согласно этой документации , ондолжен иметь возможность распознавать формат 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
, он говорит мне, что он не закодирован в этом формате, хотя он и есть.