2017-09-21 3 views
1

파이썬 ftfy 라이브러리를 사용하여 인코딩 유형이 혼합 된 텍스트를 읽으려고합니다. 이 라이브러리는 텍스트 즉 ftfy를 사용하여 두 가지 인코딩 유형이있는 텍스트 읽기

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

혼합하지 않을 때 좋은 결과를 제공하지만 텍스트가 혼합 된 경우,이 즉

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

같은이 라이브러리는 처리 할 수없는이 뭔가가있어? 혼합 된 인코딩 유형으로 텍스트를 읽을 수있는 방법이 있습니까? 또한 나는 파이썬과 유니 코드에 대해 읽지 만, 텍스트가 다른 인코딩 유형을 가질 때 어떻게 대처할 좋은 예제를 찾지 못했습니다.

+0

감사합니다! – lenz

+0

네, 유용한 라이브러리 같아요. – ShadoW

답변

0

the docs에 따르면, ftfy은 줄 단위로 작동합니다. 따라서 한 줄 내에서 하나 이상의 인코딩 수정이 적용되지 않습니다.

그것은 서로 다른 원래의 인코딩 부분이 다른 라인에있는 경우 예상대로 작동합니다 : 나를 BTW,이 라이브러리를 알고 만들기위한

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

그림자, 내 대답이 당신의 문제를 해결하는 데 도움이된다면 투표 화살표 아래의 체크 표시를 클릭하여 "동의"할 수 있습니다. – lenz

+0

물론 도움이되었습니다 ... 저는이 혼합 된 인코딩 유형을 가진 파일을 가지고 파이썬을 사용하여 파일을 읽었을 때 내부의 일부 텍스트를 utf-8로 인코딩해야하고 다른 일부는 다른 인코딩 유형으로 인코딩해야하는지 궁금합니다. 텍스트의 인코딩 유형이 다른 경우 어떻게 처리합니까? – ShadoW

+0

귀하의 의견을 이해할 수 있는지 잘 모르겠습니다. 실제로 여러 인코딩을 사용하여 하나의 텍스트 (파일, 스트림, 문자열 ...)를 가질 수는 없습니다. 여기에 표시되는 스 니펫은 "깨졌습니다". 일부 텍스트가 잘못된 인코딩 선택으로 디코딩 된 다음 올바르게 디코드 된 문자열로 연결되는 경우이 문제가 발생할 수 있습니다. 'ftfy'는 다른 부분들 사이에 개행 문자가있는 경우에만이 문제를 해결하는 데 도움을 줄 수 있습니다. – lenz