jsRSS++で化けるのは、どちらかというと、Jcodeの文字コード判別の部分。
スポンサードリンク
お世話になりすぎの I Know.さんから、なにやらトラックバックがついていて、
http://blog.i-know.jp/archives/2004/10/19/rss/
I know. の出力する RSS を 大黒屋本舗 さんの jsrss++ で使用した際に特定条件下で文字化けが起こるようです。
と書いていたので、誤爆かなと思っていたら、うちの blog のjsRSS++ がもろ化けていました。ハズい。
▲ダメダメです。ていうかバケラッタです。
で、
jsrss++ で使用されている Jcode.pm は utf-8 に関する処理が完璧では無いので、そこら辺が原因ではないかと思っています。
とのことですが、これは、どちらかというと、Jcode.pm の文字コード判断アルゴリズムの部分です。jsRSS++ 2.0β の Jcode.pm を利用している部分を見ると、
&Jcode::convert(\$RSS,$enc);
となっていますが、$RSS の文字コードを自動判断して、$enc の文字コードに変換しますが、自動判断が間違うと、全体が化けます。
というわけで、もう決め打ちしてしまいます。僕の場合、入力する RSS はみな utf8 なので、
$RSS = Jcode->new($RSS,'utf8')->$enc;
これで、入力は utf8 限定になりますが、変換は確実になるはずです。
ここから得られた教訓は、Jcode.pm には、文字コードの自動判断はさせない、ということです。
▲直った。
ここまで言い切って、直っていなかったら、恥ずかしいですね。
(2004.10.20 4.15追記)
いまみてみたら、ところどころ、派手に化けていた。ものすごく恥ずかしい。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/464
jsRSS++ v2.0 ではどうしても文字化けを回避できませんでした。中間ファイルが文字コードが混在した形になってしまいます。
中間ファイルを生成しない jsRSS++ v1.0 では文字化けは発生しませんでした。ご参考までに。
なお、v1.0 にも v2.0 と同じ更新間隔に関するバグがあるようです。