| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
■ RSSのUTF-8化 |
最近Bulkfeedsさんに拾ってもらえません。「最近」つっても、調べて見ると2004年の7月=約10ヶ月前に「Bulkfeedsさんに拾ってもらえない」という旨のエントリが有りますんで、随分長い間放置してる事になりますが(^^;;
でも、はっと気付くと、同じサーバに設置してるお友達のMTもBulkfeedsさんに拾ってもらえず「おとなりエントリ」が表示されなくなってる→さすがにこれはヤバい感じなので、この機会に重い腰を上げてみた次第。
まず、Bulkfeedsさんに当MTのRSS、index.rdfを喰って頂きます。
以下の URL は 登録に失敗しました。http://crusherfactory.net/~yas_/index.rdf (XML parse error in RSS)
やっぱ↑こうなります。エラーなのは解るんだけど、「なにがエラーなのか」を表示してくれないのでよく解んない(^_^;)
続いて、RSSの妥当性をチェックするFEED Validatorさんに喰って頂きます。
Congratulations!
This is a valid RSS feed.
え?(^_^;) valid=「正当な」RSSフィードなんすか。…そりゃ困ったな(^^;;
のちの検証の結果、「valid RSS feed」となるためには.htaccess等でAddType "text/xml; charset=EUC-JP"xml xsl rdf
とか設定しておく必要がある事が判明。これがないと
・Feeds should not be served with the "text/plain" media type
・Your feed appears to be encoded as "EUC-JP", but your server is reporting "US-ASCII"と叱られる。
ワタシは以前にこの設定をしてたらしい。忘れてたけど(^^;;
無い知恵を絞って考えます。
「う〜む。Bulkfeedsさんに最近登録された(=エラーにならずに登録できる)RSSを見てみると、全部UTF-8みたいな気がする。つまり、単純にRSSをUTF-8にすれば良いのかな?」
本来はMT側をいじってMTの出力するindex.rdfをUTF-8化するべきなんでしょけど、ワタシゃ未だにPerl全然解んない(^^;ので、PHPでなんとかすることにします。
header("Content-Type: application/xml; charset=utf-8");
$file = "index.rdf";
$page = @file($file); //@を付けるとファイルオープンに失敗してもエラーを出さない
if ($page == False) die("File can not open");
//以後の出力を全てUTF-8に
mb_http_output ("UTF-8");
//取得したファイルを行毎に配列に格納
while (list($num, $line) = each($page)){
//EUC-JPと書いてるトコをUTF-8に書き換え
$line = eregi_replace("EUC-JP","UTF-8",$line);
//出力
echo $line ;
}
?>
元のindex.rdfを読んで、「EUC-JP」を「UTF-8」に置換して、UTF-8で出力するだけのスクリプトです。ただそれだけ。これをEUC/LFで保存して、index.rdfと同じトコに置きます。
準備が出来たら、今度はコレをBulkfeedsさんに喰って頂きます。
Add / Ping your RSS以下の RSS Feed を登録/更新しました。
はかいおうこうむてん
ふむふむ、コードがUTF-8なら文句ないんですな(^_^)
ということで、以下の記述を.htaccessに追加し、index.rdfへのアクセスでindex.rdf.phpを読むようにしてみました。
なお、この記述はmod_rewriteが使える環境じゃないと駄目です。
いつの間に「BulkfeedsさんがUTF-8じゃないと喰わない」(もしくは「EUC-JPのは喰わない」)仕様になっちゃったのか謎ですが、これで、なんとかBulkfeedsさんに喰って頂ける模様。
RSS構文をチェックしてくれる日本語サービス。FEED Validatorより警告が具体的で解りやすいかも。
| 関連IT用語 by e-Words |