hns - 日記自動生成システム - Version 2.19.7

void GraphicWizardsLair( void ); //

otsune GWL
FreeBSD, AfterEffects, RETAS, animo, DigitalAnime, Linux, Mac OS, Win2k

[Who is otsune?] [title] [message] [Policy] [注目エントリー] [top]
Twitter Status :


Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい

検索式:

先月 2004年02月 来月
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


2004年02月21日() [長年日記]

#1 [home][unix] hnsのrss.cgiがXMLパースエラー_

念のためRSS.pmをsf.jpから最新版にしておく。
250行はmod_rewrite仕様に変えておく。
my $url = $HNS::System::MyDiaryURI."?$year$month$abc#$year$month$day$mark";
を適切に変えておく。下記diff参照。
さて。
XML/Parser.pm line 187というエラーが出ているということは、XML宣言のエンコード設定がおかしいからではないか? という検索結果がチラホラ。

1 rss.cgiをUTF-8にしてみた:

--- RSS.pm      2004/02/20 16:19:29     1.1
+++ RSS.pm      2004/02/20 19:00:14
@@ -16,6 +16,7 @@

 use strict vars;
 use HNS::Tools::Title;
+use Jcode;

 use vars qw(@ISA);
 @ISA = qw(HNS::Tools::Title);
@@ -26,7 +27,7 @@

 sub xml_header($) {
     my $self = shift;
-       print "<?xml version=\"1.0\" encoding=\"euc-jp\" ?>\n";
+       print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
        print "<rdf:RDF\n";
        print " xmlns=\"http://purl.org/rss/1.0/\"\n";
        print " xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n";
@@ -246,11 +247,11 @@
                $content = $item{"content"};
                $high = $item{"high"};

-               my $url = $HNS::System::MyDiaryURI."?$year$month$abc#$year$month$day$mark";
+               my $url = $HNS::System::MyDiaryURI."$year/$month/$day.html#$year$month$day$mark";
                my $rssitem;
                $rssitem->{url} = $url;
-               $rssitem->{title} = $content;
-               $rssitem->{description} = $para;
+               $rssitem->{title} = jcode($content)->utf8;
+               $rssitem->{description} = jcode($para)->utf8;
                $rssitem->{created} = "$year-$month-$day";

                if ($grp eq '') {push(@rssitems, $rssitem);}
hns付属のCodeConv.pmとは無関係にJcodeを使う感じになったけど。
本当だったらCodeConv.pmをnkf --utf8とかJcodeをutf8で呼べるような拡張をしてもいいのかもしれない。
あと日記の名前が日本語の人はもっとコンバートを追加する必要があるな。

1 うらゝのどす黒いエゴイズム日記みたいにXML::RSSを使ってrss.cgiを出力するという方法もあるな:

rss_cgi.txt_ を見たら、ハードコーディングされている個所があるので$HNS::System::Titleとかで汎用的に使えるようにしてもいいかもなぁ。
Permalink: http://www.otsune.com/diary/2004/02/21/1.html#200402211
trackback
このエントリーを含むはてなブックマーク del.icio.us livedoor Clip View blog reactions
Last Updated 2004-02-21 00:00:00 By otsune