2012-10-28 4 views
4

저는 파이썬으로 웹 크롤러를 작성하고 있으며 웹 사이트에서 헤드 라인을 가져 오는 작업이 포함됩니다. 헤드 라인의파이썬에서 UTF-8 문자열 디코딩

하나는 읽은한다 : 그리고 엉덩이의도

오는 그러나 대신 말했다 : 그리고 Hipâ € ™의도 오는

잘못 무슨 일이야?

+3

당신이 관련 코드를 포함하면 당신을 도울 쉬울 것, 그리고 파싱 할 특정 웹 사이트. – jbowes

답변

6

원본 텍스트를 올바르게 디코딩해야합니다. 대부분 원본 텍스트는 ASCII가 아닌 UTF-8 형식입니다.

질문에 대한 문맥이나 코드를 제공하지 않으므로 직접 답변을 드릴 수 없습니다.

난 당신이 유니 코드 문자 인코딩 파이썬으로 수행하는 방법을 연구 제안 :

http://docs.python.org/2/howto/unicode.html

+2

네, UTF-8은 Windows 1252처럼 취급됩니다 :'U '\ N {오른쪽 따옴표 만}'. encode ('utf-8') .deode ('cp1252')'. – eryksun

10

그것은 인코딩 오류입니다 - 그래서 유니 코드 문자열이 있다면, 이것은 그것을 해결한다고 :

text.encode("windows-1252").decode("utf-8") 

는 일반 문자열의 경우 추가 단계가 필요합니다 :

text.decode("utf-8").encode("windows-1252").decode("utf-8") 
을3210

두 가지 모두 유니 코드 문자열을 제공합니다. 그런데

이 - 당신이 chardet을 사용할 수 있습니다,이 같은 텍스트의 조각으로 인해 인코딩 문제로 엉망이 된 방법을 발견 :

>>> import chardet 
>>> chardet.detect(u"And the Hip’s coming, too") 
{'confidence': 0.5, 'encoding': 'windows-1252'} 
관련 문제