0

私のRSSフィードには次のものが含まれます。

<title><![ CDATA[HBO Wins 19 Emmy® Awards, The Most of Any Network This Year]]></title>

現在、RSSを解析してから、次のようにタイトルをタイトルに割り当てています。

 for item in XML.ElementFromURL(feed).xpath('//item',namespaces=NEWS_NS):
        title = item.find('title').text
        Log("Title :"+title)

出力またはログファイルをチェックすると、次のようなタイトルが表示されます。

HBOは、今年最も多くのネットワークである19のエミー賞を受賞しました。

®は®に変換されます。HTMLパーサーを使用してみましたが、使用できませんでした。

4

3 に答える 3

1

フィードのエンコーディングはISO-8859-1であると述べています。

その場合、あなたが言うバイトが®実際C2 AEにそうであるように解釈されるべきであるならば、テキストは本当に、本当にでありEmmy® Awards、そしてすべてがそれがそうであるように働いています。送信者が別のテキストを意図した場合、送信者は別のデータを送信するか、エンコードを別の方法で設定します。

フィードのエンコーディングがUTF-8であり、ネットワークを介して送信されたバイトがまだC2 AEの場合、テキストはになりますEmmy® Awards

フィードのエンコーディングがISO-8859-1であり、ネットワークを介して送信されるバイトが単純AEで、なしC2の場合、テキストは。になりますEmmy® Awards

バイトが何であるかを確認するには、od -xUnixのコマンドまたはWindowsのdコマンドを使用debug.exeします。このような状況では、メモ帳を信用しないでください。嘘です。

于 2011-09-28T15:46:04.303 に答える
0

UTF-8を使用してエンコードされたテキストを受信しましたが、ある時点で、それらのバイトがISO-8859-1または別のエンコードとして誤って解釈されています。

これ以上のコンテキストがなければ、間違いがどこで起こっているのかを正確に知ることは困難です。まず、ログファイルの読み取りに使用されているエンコーディングを確認する必要があります。

于 2011-09-27T09:39:47.313 に答える
0

私は次のことを試し、作業しました。

title = item.find('title').text
title = title.encode('iso-8859-1')

文字列をUTF-8(®to®)に変換し、それをiso-8859-1(®to®)に変換して正しい出力を取得している場合

于 2011-09-27T10:39:02.223 に答える