python 文本編碼識別 file magic有時候不許

試了用magic模塊,可是有的文件裏面是中文的(notepad++打開顯示爲unix ansi ,notepad++能正常打開顯示),卻被magic判斷爲"ISO 8859-1"。而用python chardet模塊識別後,該文本內容編碼爲「GB2312」,且讀取後用該編碼方式能正確顯示。 python

cnt = self.getFileContent(filepathstr)
codecname = chardet.detect(cnt).get('encoding')
if codecname != "":
    codec = QTextCodec.codecForName( codecname)
    print "codecname %s\n"%codecname
    decoder = codec.makeDecoder()
    encodedString = decoder.toUnicode(cnt)
else:
    encodedString = cnt

self.mytextWidget.setText(QString(encodedString))

本人文章除註明轉載外,均爲本人原創或編譯
歡迎任何形式的轉載,但請務必註明出處,尊重他人勞動共創開源社區
轉載請註明:文章轉載自:開源中國社區 [
http://www.oschina.net]
本文標題:python 文本編碼識別 file magic有時候不許
本文地址:http://my.oschina.net/kjpioo/blog/147455 編碼

相關文章
相關標籤/搜索