PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
Nucleus

はてなRSSの謎

イン殺さんはてなRSSに当サイトを登録しようとしても、RSS2.0でもAtomでも「フィードが見つかりませんでした。」と表示されて登録不能だそうです。俺以外にも8人登録できてる人がいるのは確認したんですが、なんかおかしい予感がしてもう一度自分でも登録してみようとしたら、見事に登録できません。なんでだろ。というかRSS自体表示がうまくいってない。
とりあえずRSS類のURLを微妙変えてみました。URLの末尾に「?blogid=1」って付けてます。付けなくても本来は動く筈なのですが、記事内容によっては「XML ページを表示できません」となって動かないのでURLの末尾に「?blogid=1」をつけたほうが無難みたいです。あと記事タイトルに[]があるとまずいようだったので、【】に変えたりしました。
(旧)
http://takehana.smile.tc/cccc/atom.php
http://takehana.smile.tc/cccc/xml-rss2.php

(新)
http://takehana.smile.tc/cccc/atom.php?blogid=1
http://takehana.smile.tc/cccc/xml-rss2.php?blogid=1
で、「?blogid=1」を付記した状態ではてなRSSに登録しようとすると、今度はちゃんとフィードの確認って表示されて、追加できそうです。
?RSS
……と思ったら、追加が終わった筈なのになんか一覧には出てこないんですけど。俺のとこだけかもしれないと思ったので今度はまみりんのはてなRSSを使ってみることにしました。この時間はまみりんは寝てるから問題ないです。と言うか起きてても試したけど。
そしてまみりんのとこでも「フィードが見つかりません」って出るのを確認してうなだれる。と言うか、「?blogid=1」を追加してないURLでもあの後から追加できそうになった時もあり、なんかわけが分かりません。どっちにしてもサイドバーの一覧に出てこないし、受信箱ボックスのカッコ内の数も増えてないから実用にならないんですが。
前々から自分のサイトのRSSは微妙に文法的にマズイんじゃないかとは思ってました。色々なRSSリーダーで試してみたら、ものによっては問題なかったり、FireFoxのRSSブックマークで時間がたつと(記事のタイトルなどが変わると?)文字化けしたり、登録自体が出来たり出来なかったり、といった感じで挙動不審極まりないのです。
ふと思ったんですが、たしかRSSってデフォルトはUTF-8だったんじゃないかと思います。記憶違いかもしれませんが、そうだとこのあとの文章自体が成り立たないので気にせずにこのまま話を進めていきます。で、当サイト自体はEUCで表示させてます。RSS自体は先頭にUTF-8で宣言してます。
でもMySQLサーバーのキャラセットはlatin1という代物になってまして*1、これをBLOGツール側ではなくMySQLが内部でEUCに変換してくれてるんです。これがMySQLの仕様なんだそうです。余計なことしやがって!
このせいで文字列でのソートが上手くいってない現象を確認してます。流石に50音順で「またさかな」と言いだすほど俺は電波じゃないです。MySQLのバージョンによってはDBごと、テーブルごとに文字コードを変えれるんですが、今のところはバージョンが低くてどうしようもない状況。サーバー管理人の方に問い合わせたら現状では多数の人が使ってる最中なのでこのままではムリだから、6月中旬くらいにテスト用のMySQLサーバーを別途用意するので移行等を試していきたいという前向きな回答を頂いています。すでに無料サーバーのAAA!CAFEのMySQL(EJIS=EUC)で、文字コードの件は解決できるのを確認してますから、新しいMySQLサーバーさえ準備できれば大丈夫でしょう。
そういう理由からもしやと思ってAAA!CAFEのMySQLサーバーでRSS生成させてみたら、こっちだと何の問題も無く出来ました。ちなみにAAA!CAFEでもサイト表示にはEUCを使ってますので、そのあたりは問題ではなさそうです。試しにRSS2.0でもAtomでもやってみましたが、同じサイト名がサイドバーにちゃんと並んでくれてます。
?RSS
Feed Validatorで試してみましたが、AAA!CAFEのMySQLサーバーだと全くエラーが出なくて、当サイトのMySQLサーバーだと「Your feed appears to be encoded as “UTF-8”, but your server is reporting “EUC-JP”」ってWarningが出てくるので、コレで確定っぽい気がします。MySQLサーバーそのままでうまくいかないかどうかも試してみますが、最悪でもそのうちMySQLサーバーの変更時にはてなRSSでテストしてみますので、なんらかの形でうまくいったら報告してみたいと思います。
と言うわけでそれまでははてなアンテナで更新捕捉していただいただけると助かります。というかはてなRSSだと捕捉が遅いみたいなのではてなアンテナの方が便利かも。はてなRSSも登録数が多くないと迅速に反映されないんでしょうか。はてなアンテナだと手動更新チェッカーを使えば即反映できるんですけど、はてなRSSにはそういうのがないのかなぁ。
※追記:理由は良く分からないのですが、こちらの記事で紹介しているスクリプトを使えばはてなRSSに登録可能でした。不思議。
※追記2:この記事を書いた時はこれで解決と思っていたのですが、2005/09/18現在では再び同じような不具合が生じていて、いまだ未解決の状態です。

  • 注1 : SHOW VARIABLES LIKE ‘char%’ で確認。

コメント

タイトルとURLをコピーしました