文字実体参照とわたくし

勝手にRSS作成(リンク1リンク2)というのをやっているのですが、最近うまくRSSが生成されていないことがあります。調べてみたら、文字実体参照の“と”が悪さしてるっぽい。
HTMLのパースにperlのモジュール、HTML::TokeParser(HTML::Parserのサブセット)を使用しているのですが、日本語と文字実体参照が混ざってるとgettextで文字化けを起こすっぽい。元のHTMLはShiftJisなのですが(今どき!)、文字コードをUTF8に変換してから食わせてもダメ。やっぱり元のHTML::Parserがマルチバイト言語をあまり考慮していないのが原因みたい。
もし、その問題をクリアしたとしても、HTMLよりRSS(xml?)のほうが文字実体参照の対応範囲が狭いため、“や”のようなものはふつーの文字に変換してやるかCDATAでくくってやる必要があります。
いつもは個別対応のコードを入れて逃げてしまうところですが、今のところアルゴリズム上簡単にはそれもできない状態にあり、お手上げです。
そのうちモジュールに対応コードいれてパッチ送っちゃうかもしれないけど、いまはとてもそんな時間は取れそうにないのが問題。
なにか簡単な方法はないですかねぇ。