2012-06-11 7 views
2

피드 파서를 사용하여 RSS 피드를 읽으려고합니다.키릴 문자 (러시아어) 문자로 작업하는 동안 UnicodeEncodeError를 해결하는 방법은 무엇입니까?

import feedparser 
url = 'http://example.com/news.xml' 
d=feedparser.parse(url) 
f = open('rss.dat','w') 
for e in d.entries: 
    title = e.title 
    print >>f, address 
f.close() 

그것은 영어 RSS - 피드와 잘 작동하지만 난 키릴 문자로 쓰여진 제목을 표시하려고하면 나는 UnicodeEncodeError를 얻을. 다음과 같은 경우에 발생합니다.

  1. 파일에 제목을 쓰십시오.
  2. 화면에 제목을 표시합니다.
  3. 웹 페이지에 액세스하려면 URL에서 사용해보십시오.

제 질문은이 문제를 어떻게 쉽게 해결할 수 있는가입니다. 나는이만큼 간단한 해결책을 가지고 싶어요 :

new_title = some_function(title) 

HTML 코드에 의해 모든 키릴 문자 기호를 대체하는 방법이있을 수 있습니까?

답변

3

FeedParser 자체가 잘못 선언 된 경우를 제외하고는 인코딩과 잘 작동합니다. 가능한 설명은 http://code.google.com/p/feedparser/issues/detail?id=114을 참조하십시오. 파이썬 2.5는 ascii를 기본 인코딩으로 사용하고 문제를 일으키는 것으로 보인다. 실제 피드 URL을 붙여 넣으면 인코딩이 어떻게 선언되는지 확인할 수 있습니다. 선언 인코딩이 잘못되었다고 생각되면 FeedParser가 기본값을 무시하도록 지시하는 방법을 찾아야합니다.

EDIT : 알았습니다. 오류가 print 문에있는 것 같습니다. 사용

f.write(title.encode('utf-8')) 
+0

텍스트를 업데이트하고 인쇄하기 전에 값을 인코딩하십시오. – Tisho

+0

감사합니다. 그것은 문제를 해결합니다! – Roman