JBAアビスパ退避のスクリプトはCANDY CGI (ありがたや・・・・)で配布しているRSS reader Type1を元に、色々カスタマイズして動かしてます。
で、ここ2日ほどで以下の改造を加えました。
・FeedPP実行部分のマルチスレッド化
・UTF-8変換部を修正
上は処理時間を短縮したかっただけで、そこらにたくさん転がっているサンプル通りの改修なんですが(とは書いたものの、portsで入るperlは非threadedなのでコンパイルしなおし。おかげで色々動かないものが出てきて難儀しました)、下は文字化けが気になったのでアレコレ試してみました。
具体的には以下のような箇所が文字化けてしまってました。
・"hogehoge"のような文字列
どう書いていいのかよくわかりませんが、ascii文字でマルチバイト文字を挟んでいると化けます。
色々試行錯誤してたら、化けない書き方がありました。
化ける
Jcode::convert(\$site_t, "utf8");
化けない
Jcode::convert("\$site_t", "utf8");
Jcodeが悪いんや!と思い込んでスクリプト自体はEncode使うように変更した挙句、結局上記に気づいたという・・・・
スクリプトそのものは、もうEncodeで動いてるんでとりあえずJcodeはサヨナラといたしました。
(というか、Jcodeが悪いも何も、今のJcodeはEncodeのラッパーになってるんですね。)
Encodeでも
&from_to("$site_t",$fromcode,"utf8");
もしくは
&from_to(\$site_t,$fromcode,"utf8");
ってやんないと化けます。
お試しあれ。