RDF が文字化けする
- このフォーラムに新規トピックを投稿できます
- このフォーラムではゲスト投稿が許可されています
投稿ツリー
- Re: RDF が文字化けする (なーお, 2010/10/31 18:38)
- Re: RDF が文字化けする (OhYeah, 2010/10/31 21:30)
- Re: RDF が文字化けする (なーお, 2010/11/1 1:16)
- Re: RDF が文字化けする (OhYeah, 2010/11/1 22:44)
- Re: RDF が文字化けする (なーお, 2010/11/2 10:13)
- Re: RDF が文字化けする (OhYeah, 2010/11/2 20:02)
OhYeahさん、こんにちは。
色々ありがとうございます。
テンプレート化もされていたんですね。
取り急ぎ、当方でもテンプレート化と、RSS2.0配信を組み込んでみました。(まだ非公式版です。) モジュールアップデートを2回かけてください。
- prefferenceでは、「default」(第3引数指定なし)/「xoops_charset」(_CHARSET)/「auto」(auto) の3Optionとしてあります。
- fullcontentは、とりあえず渡してみただけでテンプレートでコメントアウトし、検証していません。 OhYeahさんのHPでd3blogでの対応が書かれていたのですが、ちょっと理解が追いつかないので・・
- root_path側のRSS2.0の画像が追加となり、1.0の画像も更新されています。
- mb_stringのemulatorは、nao-ponさんのhyp_commonと共通化で組み込みました。
以上、お試しいただき、おかしなところがあればご指摘いただけますでしょうか。 よろしくお願いします。
xoops_charset でもいけました。で、言語周りの設定を良く確認してみたところ、global.php の _MBSTRING_LANGUAGE を ja_utf8 に設定してあったようで、ここを japanese に戻したら default でも文字化けはなくなりました。どうもお騒がせしました。
全文配信ですが、CDATA 内に記述する場合は htmlspecialchars は不要です。というか、生 html を渡さないと、フィードリーダのレンダリングシステムによるかもしれませんが、Opera なんかでは画像等の取得ができなくなります。下記のようにすると、Opera で画像も含めて表示できるようになりました。
1 |
|
あと、rdf.xml の <content:encoded> で、CDATA[' のシングルクォートは余分ではないかと…。
OhYeahさん、こんにちは。
検証いただき、ありがとうございました。
全文配信の部分のコードを修正し、Attachfileモジュールのプラグインを同梱して、先ほどと同バージョンでアップしました。
Attachfileモジュールのプラグインのほうは、記事閲覧権限に連動してダウンロードが許可されますので、直打ちされても大丈夫に作ってみました。 機会がありましたらお試しください。
では、また何かありましたらご連絡お願いします。
お疲れ様でした。新版を公開されたばかりのところで申し訳ありませんが、d3blog のフィードの件も含めて RSS1.0 と ATOM の仕様を数年ぶりに読み直してみたら、htmlSpecailChars で html 特殊文字をエンコードしておけば、わざわざ CDATA セクションに生 html を埋め込む必要がないことが判明しました。生 html は少々危険なので、切り替えた方が良さそうです。
RSS2.0 は全然チェックしていませんが、RSS1.0, ATOM とも Opera, d3pipes と Google リーダーで画像を含めて問題なく取得できることを確認したので、下記に公開しました。ATOM では更新時刻も配信可能なので、rdf.php も update_time を取得してアサインするように変更してあります。
次の更新の際にでも、こちらをお使いください。
http://www.o-ya.net/modules/d3downloads/index.php?page=singlefile&cid=6&lid=2
しかし、こうなると rdf.php, rdf.xml というファイル名はちょっと違和感がありますね。
2010.11.1 23:23 追記
後で htmlSpecialChars に ENT_QUOTES パラメータを追加しようと思ってたのに、すっかり忘れてました(^_^;)。RDF ではシングルクォートもエンコードしておく必要があるので、' には変換できませんが、ENT_QUOTES にしておいた方が間違いないと思います。
現在私のサイトで公開しているものは、ENT_QUOTES を追加しています。
OhYeahさん、こんにちは。
ATOMフィードの追加や、update_time追加、htmlSpecialCharsに引数ENT_QUOTES追加など、実装作業をありがとうございます。 早速、ほぼそのまま取り込ませていただき、ver0.12b3としてリリースしました。
一点だけ、全文配信したRSSを、他のサイトのd3diaryの外部ブログ設定をしても、記事を取り込めない、という事態になりまして、 RSS取得側は検証がかなり面倒なので、全文配信はコメントアウトとさせていただきました。ご容赦ください。
また、「rdf.php」というURLがしっくりこない件、確かにそうなんのですが、変更すると既存リンクを切らさないためにもラッパー処理が必要になったりしますんで、少し考えてから変更するかどうか決めようと思います。
最近、d3diaryユーザー数も増えてきたところですので、このタイミングでOhYeahさんに手を入れていただき、大変助かりました。 重ねてありがとうございました。
一点だけ、全文配信したRSSを、他のサイトのd3diaryの外部ブログ設定をしても、記事を取り込めない、という事態になりまして、 RSS取得側は検証がかなり面倒なので、全文配信はコメントアウトとさせていただきました。ご容赦ください。
元々の RDF フィードが <content:encode> を使ってなかったので、当然記事取り込み部もそれを想定してなかったってことですね。全文配信は、リーダ側でちゃんと取得できるかどうかのチェックのために有効にしてあっただけで、追加した ATOM はともかくとして、従来からある RDF はこういう問題が無くてもデフォルトで無効にしておいた方が良いと私も思っていました。どうぞお気遣い無く。