試了用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 編碼