使用两种不同的编码类型使用ftfy读取文本

问题描述:

我试图阅读使用python ftfy库混合编码类型的文本。该库提供良好的结果时文本不混合即使用两种不同的编码类型使用ftfy读取文本

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

但如果文字是混合然后得到这样的事情即

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

这东西,这个库不能处理?有什么方法可以阅读混合编码类型的文本?另外我会做一些关于python和unicode的了解,但是没有找到好的例子,当文本具有不同的编码类型时如何处理。

+0

谢谢你让我知道这个库,顺便说一句! – lenz

+0

是的,这是看起来很有用的图书馆...... – ShadoW

根据the docsftfy一行一行地工作。因此,在一行中,它不会应用多个编码修复。

它如预期,如果有不同的原始编码的部分是在不同的行工作:

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

阴影,如果我的答案帮助你解决了你的问题,你可以通过点击投票箭头下面的复选标记来“接受”它。 – lenz

+0

当然这是有帮助的...我只是想知道如果我们有一个文件,这种混合编码类型和使用python来读取该文件,一些文本需要用utf-8编码,一些用其他编码类型编码。当文本具有不同的编码类型时如何处理? – ShadoW

+0

我不确定我是否了解您的评论。实际上,您不可能拥有包含多种编码的单个文本(文件,流,字符串...)。你在这里展示的片段是“破碎”的;如果某些文本使用错误的编码选择进行解码,然后与正确解码的字符串串联,则可能会发生这种情况。 'ftfy'可以帮助你解决这个问题,但只有在不同部分之间有换行符的情况下。 – lenz