utf-8和utf-8 BOM之间有不同的python吗?

时间:2019-04-18 08:08:12

标签: python encoding utf-8 character-encoding

我的任务是检查文件的编码。实际上,我的问题是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,则表明即使没有,它也没有以这种格式编码。

0 个答案:

没有答案