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/2006/02/carp-rssrss.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/2006/02/carp-rssrss.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 コメント:

20 February, 2006 01:04 - Coloより  

アントン-san

You write very good Japanese! May I ask where can I download the latest version of CaRP RSS? I'd like to use it for my blog if possible. Now am using MagpieRSS modified for Japanese text, but sometimes it doesn't work.

Your favorable cooperation would be highly appreciated.

Colo

Post a Comment

http://www.geckotribe.com/info-bite/ja/2006/02/carp-rssrss.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/2006/02/carp-rssrss.php on line 59

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/2006/02/carp-rssrss.php on line 59
アーカイヴ

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/2006/02/carp-rssrss.php on line 66

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/2006/02/carp-rssrss.php on line 66