Warning: include_once(/www/templates/gt/parts/blogs/infobitej/first.php) [function.include-once]: failed to open stream: No such file or directory in /www/gt/www/info-bite/ja/index.php on line 18

Warning: include_once() [function.include]: Failed opening '/www/templates/gt/parts/blogs/infobitej/first.php' for inclusion (include_path='.:/usr/local/lib/php') in /www/gt/www/info-bite/ja/index.php on line 18

Friday, February 10, 2006

CaRP RSSパーサーが日本語RSSフィードをウェブページに表示する 

昨日、RSSパーサーのCaRPの新バージョーンをリリースした。このバージョンに、日本語や別のmulti-byte言語を正しく処理するようになった。以前、文字数を限定した時に(たとえば、タイトルの最初の15文字だけ表示したい場合)CaRPが最初の15バイトを表示した。日本語はたとえUTF-8エンコードを使っている場合1つの文字が普通3バイトで表される。だからうまくいく場合、15文字の代わり、5文字しか表示されなかった。うまくいかない場合、最後の文字の最初のバイトだけ表示するから文字化けが出てしまった。その問題を今回のバージョンに解決したから、日本語にあまり合っていなかったCaRPが完全に日本語を処理できるようになった。

しかし、もう一つの問題がある。CaRPがUTF-8、ISO-8859-1とUS-ASCII以外のエンコーディングを処理できない(PHPのXMLパーサーの限定のため)。だからフィードがShift JISやEUCでエンコードしている場合、またはウェブページがそのいすれのエンコーディングを使っている場合、最初にUTF-8に「transcode」しないとならない。CaRPの無料バージョンはそれができないがCaRP KoiとCaRP Evolutionが「transcode.php」というスクリプトが含まれているから、できる。

ウェブページがUTF-8の場合、コードはこのよう:

<?php
require_once '/YOUR/PATH/TO/carp/carp.php';
CarpConf('encodingout','UTF-8');
CarpCacheShow('http://YOUR-SITE.COM/transcode.php?url='. urlencode('http://EXAMPLE.COM/FEED.RSS'));
?>

ウェブページがUTF-8でない場合(例えばShift JISの場合)コードはこのよう:

<?php
require_once '/YOUR/PATH/TO/carp/carp.php';
CarpConf('encodingout','UTF-8');
CarpConf('outputformat',2);
CarpCacheShow('http://YOUR-SITE.COM/transcode.php?url='. urlencode('http://EXAMPLE.COM/FEED.RSS'));
echo iconv('UTF-8','Shift_JIS//TRANSLIT',$carpoutput);
?>

いずれもサーバがiconvをサポートする必要があるが、ほとんどのサーバがサポートしているから、大体の場合はこのコードが利用できるだろう。
// 11:59 AM - Antone Roundy より
コメント(1)
http://www.geckotribe.com/info-bite/ja/2006/02/carp-rssrss.php

日本語を完全に忘れる前... 

Salt Lake 2002オリムピクでボランティア通訳者としてスキージャンプで奉仕した。この四年間、日本語を喋り、書いたり、読んだりする機会があまりなかった。日本語の単語や漢字を思い出そうとすると、できなくなってきている。だから最近「何かして練習しないと」と思っている。そのため、今日、私の大好きのRSSとAtomに関して日本語でブログを書き出す。恐らく日本語の失敗ばかりになるだろうが、頑張るぞ!よりうまく書いた言葉を読みたがる者が英語ブログを読んでください。
// 10:51 AM - Antone Roundy より
コメント(2)
http://www.geckotribe.com/info-bite/ja/2006/02/blog-post_10.php

This page is powered by Blogger. Isn't yours?


Warning: include_once(/www/templates/gt/parts/blogs/infobitej/second.php) [function.include-once]: failed to open stream: No such file or directory in /www/gt/www/info-bite/ja/index.php on line 63

Warning: include_once() [function.include]: Failed opening '/www/templates/gt/parts/blogs/infobitej/second.php' for inclusion (include_path='.:/usr/local/lib/php') in /www/gt/www/info-bite/ja/index.php on line 63
アーカイヴ

Warning: include_once(/www/templates/gt/parts/blogs/infobitej/third.php) [function.include-once]: failed to open stream: No such file or directory in /www/gt/www/info-bite/ja/index.php on line 70

Warning: include_once() [function.include]: Failed opening '/www/templates/gt/parts/blogs/infobitej/third.php' for inclusion (include_path='.:/usr/local/lib/php') in /www/gt/www/info-bite/ja/index.php on line 70