2017-09-21 36 views
1

我試圖閱讀使用python ftfy庫混合編碼類型的文本。該庫提供良好的結果時文本不混合即使用兩種不同的編碼類型使用ftfy讀取文本

>>> print(ftfy.fix_text('ünicode')) 
ünicode 

但如果文字是混合然後得到這樣的事情即

>>> print(ftfy.fix_text('Hi to ℙℽ☂ℌϕℿ ünicode')) 
ℙℽ☂ℌϕℿ ünicode 

這東西,這個庫不能處理?有什麼方法可以閱讀混合編碼類型的文本?另外我會做一些關於python和unicode的瞭解,但是沒有找到好的例子,當文本具有不同的編碼類型時如何處理。

+0

謝謝你讓我知道這個庫,順便說一句! – lenz

+0

是的,這是看起來很有用的圖書館...... – ShadoW

回答

0

根據the docsftfy一行一行地工作。因此,在一行中,它不會應用多個編碼修復。

它如預期,如果有不同的原始編碼的部分是在不同的行工作:

>>> print(ftfy.fix_text('Hi to ℙℽ☂ℌϕℿ \nünicode')) 
Hi to ℙℽ☂ℌϕℿ 
ünicode 
+0

陰影,如果我的答案幫助你解決了你的問題,你可以通過點擊投票箭頭下面的複選標記來「接受」它。 – lenz

+0

當然這是有幫助的...我只是想知道如果我們有一個文件,這種混合編碼類型和使用python來讀取該文件,一些文本需要用utf-8編碼,一些用其他編碼類型編碼。當文本具有不同的編碼類型時如何處理? – ShadoW

+0

我不確定我是否瞭解您的評論。實際上,您不可能擁有包含多種編碼的單個文本(文件,流,字符串...)。你在這裏展示的片段是「破碎」的;如果某些文本使用錯誤的編碼選擇進行解碼,然後與正確解碼的字符串串聯,則可能會發生這種情況。 'ftfy'可以幫助你解決這個問題,但只有在不同部分之間有換行符的情況下。 – lenz

相關問題