RDF が文字化けする


投稿ツリー


なーお

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/10/31 18:38 | 最終変更
なーお  長老   投稿数: 1746

OhYeahさん、こんにちは。

色々ありがとうございます。
テンプレート化もされていたんですね。

取り急ぎ、当方でもテンプレート化と、RSS2.0配信を組み込んでみました。(まだ非公式版です。) モジュールアップデートを2回かけてください。

filed3diary_0.12b2.zip

  1. prefferenceでは、「default」(第3引数指定なし)/「xoops_charset」(_CHARSET)/「auto」(auto) の3Optionとしてあります。
  2. fullcontentは、とりあえず渡してみただけでテンプレートでコメントアウトし、検証していません。 OhYeahさんのHPでd3blogでの対応が書かれていたのですが、ちょっと理解が追いつかないので・・
  3. root_path側のRSS2.0の画像が追加となり、1.0の画像も更新されています。
  4. mb_stringのemulatorは、nao-ponさんのhyp_commonと共通化で組み込みました。

以上、お試しいただき、おかしなところがあればご指摘いただけますでしょうか。 よろしくお願いします。

投票数:2 平均点:10.00
返信する
OhYeah

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/10/31 21:30 | 最終変更
OhYeah  半人前   投稿数: 24

xoops_charset でもいけました。で、言語周りの設定を良く確認してみたところ、global.php の _MBSTRING_LANGUAGE を ja_utf8 に設定してあったようで、ここを japanese に戻したら default でも文字化けはなくなりました。どうもお騒がせしました。

全文配信ですが、CDATA 内に記述する場合は htmlspecialchars は不要です。というか、生 html を渡さないと、フィードリーダのレンダリングシステムによるかもしれませんが、Opera なんかでは画像等の取得ができなくなります。下記のようにすると、Opera で画像も含めて表示できるようになりました。

1
		$entry['diary'] = $d3dConf->func->convert_encoding_utf8($d3dConf->func->substrTarea($dbdat['diary'], $dbdat['dohtml'], 0, false, "UTF-8"));

あと、rdf.xml の <content:encoded> で、CDATA[' のシングルクォートは余分ではないかと…。

投票数:3 平均点:10.00
返信する
なーお

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/11/1 1:16
なーお  長老   投稿数: 1746

OhYeahさん、こんにちは。

検証いただき、ありがとうございました。
全文配信の部分のコードを修正し、Attachfileモジュールのプラグインを同梱して、先ほどと同バージョンでアップしました。

Attachfileモジュールのプラグインのほうは、記事閲覧権限に連動してダウンロードが許可されますので、直打ちされても大丈夫に作ってみました。 機会がありましたらお試しください。

では、また何かありましたらご連絡お願いします。 :-)

投票数:3 平均点:10.00
返信する
OhYeah

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/11/1 22:44 | 最終変更
OhYeah  半人前   投稿数: 24

お疲れ様でした。新版を公開されたばかりのところで申し訳ありませんが、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 を追加しています。

投票数:1 平均点:10.00
返信する
なーお

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2010/11/2 10:13 | 最終変更
なーお  長老   投稿数: 1746

OhYeahさん、こんにちは。

ATOMフィードの追加や、update_time追加、htmlSpecialCharsに引数ENT_QUOTES追加など、実装作業をありがとうございます。 早速、ほぼそのまま取り込ませていただき、ver0.12b3としてリリースしました。 :-)

一点だけ、全文配信したRSSを、他のサイトのd3diaryの外部ブログ設定をしても、記事を取り込めない、という事態になりまして、 RSS取得側は検証がかなり面倒なので、全文配信はコメントアウトとさせていただきました。ご容赦ください。

また、「rdf.php」というURLがしっくりこない件、確かにそうなんのですが、変更すると既存リンクを切らさないためにもラッパー処理が必要になったりしますんで、少し考えてから変更するかどうか決めようと思います。

最近、d3diaryユーザー数も増えてきたところですので、このタイミングでOhYeahさんに手を入れていただき、大変助かりました。 重ねてありがとうございました。 :-)

投票数:0 平均点:0.00
返信する
OhYeah

なし Re: RDF が文字化けする

msg# 1.1.1.2.1.1.1.1.1.1.1.1.1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010/11/2 20:02
OhYeah  半人前   投稿数: 24
引用:
一点だけ、全文配信したRSSを、他のサイトのd3diaryの外部ブログ設定をしても、記事を取り込めない、という事態になりまして、 RSS取得側は検証がかなり面倒なので、全文配信はコメントアウトとさせていただきました。ご容赦ください。

元々の RDF フィードが <content:encode> を使ってなかったので、当然記事取り込み部もそれを想定してなかったってことですね。全文配信は、リーダ側でちゃんと取得できるかどうかのチェックのために有効にしてあっただけで、追加した ATOM はともかくとして、従来からある RDF はこういう問題が無くてもデフォルトで無効にしておいた方が良いと私も思っていました。どうぞお気遣い無く。

投票数:0 平均点:0.00
返信する

このトピックに投稿する

題名
ゲスト名
投稿本文
  条件検索へ