2

フィードパーサーを使用してRSSフィードを読み取ろうとしています。

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. WebページにアクセスするためにURLでそれを使用してみてください。

私の質問は、この問題を簡単に解決する方法です。私はこれと同じくらい簡単な解決策を持ちたいです:

new_title = some_function(title)

すべてのキリル文字をそのHTMLコードで置き換える方法はありますか?

4

1 に答える 1

3

FeedParser自体は、誤って宣言されている場合を除いて、エンコーディングで正常に機能します。考えられる説明については、 http://code.google.com/p/feedparser/issues/detail?id=114を参照してください。Python 2.5はデフォルトのエンコーディングとしてASCIIを使用しているようで、問題が発生します。実際のフィードURLを貼り付けて、そこでエンコーディングがどのように宣言されているかを確認できますか。宣言エンコーディングが間違っていると思われる場合は、FeedParserにデフォルト値を上書きするように指示する方法を見つける必要があります。

編集:さて、エラーは印刷ステートメントにあるようです。使用する

f.write(title.encode('utf-8'))
于 2012-06-11T11:39:35.000 に答える