M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2004年10月20日 02:30

jsRSS++で化けるのは、どちらかというと、Jcodeの文字コード判別の部分。

このエントリーをはてなブックマークに追加 mixiチェック

パソコン・インターネットのアイコンお世話になりすぎの I Know.さんから、なにやらトラックバックがついていて、
http://blog.i-know.jp/archives/2004/10/19/rss/

I know. の出力する RSS を 大黒屋本舗 さんの jsrss++ で使用した際に特定条件下で文字化けが起こるようです。

と書いていたので、誤爆かなと思っていたら、うちの blog のjsRSS++ がもろ化けていました。ハズい。

jsrssbake.gif
▲ダメダメです。ていうかバケラッタです。

で、

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 には、文字コードの自動判断はさせない、ということです。

jsrssbakenai.gif
▲直った。

ここまで言い切って、直っていなかったら、恥ずかしいですね。


(2004.10.20 4.15追記)
いまみてみたら、ところどころ、派手に化けていた。ものすごく恥ずかしい。

投稿 大野 義貴 [RSS] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/464

コメント(1)

jsRSS++ v2.0 ではどうしても文字化けを回避できませんでした。中間ファイルが文字コードが混在した形になってしまいます。
中間ファイルを生成しない jsRSS++ v1.0 では文字化けは発生しませんでした。ご参考までに。

なお、v1.0 にも v2.0 と同じ更新間隔に関するバグがあるようです。

コメントする