txqz memo

Informaがココログのatomをうまく読んでくれない

たとえば河野美代子のいろいろダイアリーのAtomInforma (0.7.0)に、以下のようなコードで読ませてみる。

public static void main(String[] args) throws IOException, ParseException{
    ChannelIF feed = FeedParser.parse(new ChannelBuilder(), "http://miyoko-diary.cocolog-nifty.com/blog/atom.xml");
    for(ItemIF item : feed.getItems()){
        System.out.println(item.getTitle());
        System.out.println(item.getDescription());
        System.out.println("**************");
    }
}

結果、「オフ会で楽しかった後、怖かったこと」や「施設を見学して」は問題なく本文を取り出せたが、「反省したこと、怒られたこと」や「医の原点をみた」は以下のような文字化けが起こった。

反省したこと、怒られたこと
 2;[@v+??Y???m¶??? 0?
?¢,?×?}??m?P

(制御文字か何かがあるらしく、これ以上はコピペできなかった)

Atomのソースを見てみると、文字化けするエントリのcontent要素はtype属性値が"text/html"になっていて、うまく取得できるエントリのcontent要素はtype属性値が"application/xhtml+xml"になっていた。Informaはtext/htmlなcontent要素をうまく取得できないのかな。というかエントリによってcontent要素の型が違うのって何でよ。img要素とかの関係か? と思ったけど、すべてのエントリにimg要素はあるしなぁ。記事を新しく作るとデフォルトのapplication/xhtml+xmlとしてフィードに書き出すけど一度書き換えるとなぜかtext/htmlになるとか? まさか。

0.6.5に落としたらとりあえず直った