メイン
   XOOPS日本語化
     "headlines" モジュール:utf-8 を表示させるには?

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ito
投稿日時: 2002/6/21 23:27
半人前
登録日: 2002/6/6
居住地:
投稿: 37
"headlines" モジュール:utf-8 を表示させるには?

いつもお世話になっています :-)

"headlines" モジュールで RDF が encoding="EUC-JP" 以外の encoding="utf-8" を文字化けせずに、ブロック内に表示させる方法で悩んでいます。

RSS を読み込ませる相手のサイトが XOOPS だけなら問題ないのですが、実際は utf-8 のほうが多いので、jcord.phps や サーバの "NKF" などを読み込ませていろいろやっているのですが、上手くいきません。

御存じのかたご教示願えれば助かります。よろしくお願いいたします。

onokazu
投稿日時: 2002/6/21 23:55
管理人
登録日: 2002/1/25
居住地:
投稿: 1587
Re: "headlines" モジュール:utf-8 を表示させるには?

開発メンバのJMさんが以前UTFからEUCへの変換表示を行うヘッドラインモジュールを試験的に作成していました。

詳細

ここで実際にslashdot.jpのヘッドライン表示に成功しているようです。

RSSを読み込むためのクラスはここのを改良して使用されているのではないかと思います。

<small>[ 編集ログ: onokazu 投稿日時: 2002-6-21 23:57:08 ]</small>

ito
投稿日時: 2002/6/22 1:31
半人前
登録日: 2002/6/6
居住地:
投稿: 37
Re: "headlines" モジュール:utf-8 を表示させるには?

それも以前試してみたのですが、utf-euc conv on で "1" にすると表示もされなくなったので、諦めていました("0"だと文字化けになったヘッドラインが表示されるのですが...)。

とりあえず、これ以上はここで質問することではないようなのでもう一度やってみてだめなら JM さんのサイトで質問してみます。

ito
投稿日時: 2002/6/22 1:52
半人前
登録日: 2002/6/6
居住地:
投稿: 37
Re: "headlines" モジュール:utf-8 を表示させるには?

自己フォローアップ。

数カ所の訂正で文字化けせずに表示されるようになりました。

・JM さんの、myheadlineopen.php(.txt)の15、16 行目のコメントアウトをはずします。

・で、その 16行目の、
include_once($xoopsConfig['root_path']."/include/jcode.php");

include_once($xoopsConfig['root_path']."/include/jcode.phps");
に直します。php を phps にするわけです。

・さらに126行目あたりの
include_once($xoopsConfig['root_path']."/include/jcode.php");
も同じように、php を phps に直します。

少し読み込みに時間がかかるような気もしますが、とりあえずこれで動きました。嬉しかったので(笑)、実験的にサイドブロックに表示してみました。
http://www.teenagesubmarine.com/
単独のページはこんな感じです。
http://www.teenagesubmarine.com/hl/

いつもながらモチベーションを持たせ続けてくれる、XOOPS に感謝。ありがとうございました。

<small>[ 編集ログ: ito 投稿日時: 2002-6-22 7:08:53 ]</small>

JM2
投稿日時: 2002/6/23 10:53
登録日: 2002/2/14
居住地:
投稿: 110
Re: "headlines" モジュール:utf-8 を表示させるには?
引用:

・で、その 16行目の、

include_once($xoopsConfig['root_path']."/include/jcode.php");

include_once($xoopsConfig['root_path']."/include/jcode.phps");

に直します。php を phps にするわけです。

通常 拡張子.phps を .phpにします。jcode.php
.phps はapach/phpの設定があれば、PHPのソースが奇麗に表示されるモードで表示、
設定がなければ、.txtのようにそのまま表示します。どちらの場合も両方ともphpと
して処理されず、ソースがそのままtextで表示されてしまいます。
(今回のjcode内には大事な情報はないですが、db infoなどあると表示されてしまう)
詳しくはapach,phpの設定資料を見てください。

その他、今回の表示されなかったのは、include時にjcode.phpがなかったためですが、
「画面が真っ白」、「部分的に(ブロックなど)が表示されない」..など
「思った通りに動かない」時にはエラー表示をオンにすればすぐに原因がわかります。

XOOPSはエラー表示なしになっています。
エラー表示のコントロール、デバックの方法は
xoops.orgのfaq,ここのForumの検索、
こちらRB21 FAQ, http://www.rb21.com/xo/xoopsfaq.htm

引用:
引用:

何も表示しない。どこかでエラーだがエラー表示が出ず途中のエラーで表示が止まっている。

DEBUG(E)の設定にする。
(RC3では error_reporting (0);は include/common.php にあります)

尚、公開サーバーでは*絶対に*エラーなしのままで、
自分のマシンなどにテスト環境をつくり、テスト環境で確認して下さい。

ito
投稿日時: 2002/6/23 14:44
半人前
登録日: 2002/6/6
居住地:
投稿: 37
Re: "headlines" モジュール:utf-8 を表示させるには?
引用:

通常 拡張子.phps を .phpにします。

基本的なことがわかっていないためのこちらのミスでした。perl でしか jcode(.pl) を使ったことがなかったので全くの素人でした。失礼いたしました。

# まだまだ修行が足りない...:-(

というわけで訂正。
・"class" ディレクトリに rdf.class.php をインストール。
・"include" ディレクトリに code_table.ucs2jis と jcode.php をインストール(jcode の拡張子はダウンロードした "phps" そのままではなく "php" に変更)。

・14、15行目の
 include_once($xoopsConfig['root_path']."/include/code_table.ucs2jis");
 include_once($xoopsConfig['root_path']."/include/jcode.php");
のコメントアウトをはずす。

のみで、OK でした。
JM さん、くわしい解説をありがとうございました。

<small>[ 編集ログ: ito 投稿日時: 2002-6-23 14:54:57 ]</small>

taru
投稿日時: 2002/12/21 11:35
一人前
登録日: 2002/12/2
居住地: 兵庫県の尼崎
投稿: 100
myheadlineopen.phpを使う

itoさんの続きです。随分、日付に間があきましたね。 :-)
myheadlineopen.phpの使い方ですが、headlineモデュールのような表示はできないのでしょうか?
このままだと、myheadlineopen.phpが左メニューやら読み込んでいるので使い方とすればmenu内にhealineとして埋め込みリンクでmyheadlineopen.phpでしか利用できない。
余計なもの?を取り除いてheadlineそのものだけを表示するにはどこを直せばいいでしょうか?
これがわかれば、多分 新規ブロックの中で表示可能=目的達成なのですが・・。 :-x

rh
投稿日時: 2003/2/16 19:58
新米
登録日: 2003/1/23
居住地: Sunnyvale, CA
投稿: 2
Re: "headlines" モジュール:utf-8 を表示させるには?

いまさらなんですがウチでやってみた日本語対応の方法を紹介します。phpのmb関数を使ってやりました

コードを追っかけてると、どうやらヘッドラインモジュールからRSSの取得には、単にクラスライブラリを使ってるだけなので、
class/phpsyndication.lib.phpの178行目に
$data = mb_convert_encoding($data, mb_internal_encoding(), "auto");
を追加
*return $data;の前の行で、文字コードを内部コードに変換する
として、無理矢理EUCに変換してしまいました

この方法で表示させているのが
ほそいりょすけのXOOPS
です
slashdot.jpのは表示できませんでしたが、これはphpsyndication.lib.php側の問題のような気が。。。

onokazu
投稿日時: 2003/2/17 1:11
管理人
登録日: 2002/1/25
居住地:
投稿: 1587
Re: "headlines" モジュール:utf-8 を表示させるには?

文字コードの変換が面倒なので、XOOPS2用にFlashを使ってRSSリーダを作っています。ただ、これだとUTFを直接表示できるので楽なのですが、逆にEUCのRSSを読み込めなくなります。ところでXOOPSやPHPNUKE系以外でRSSをEUCで配信しているアプリ・サイトってあるのでしょうか?

SUM
投稿日時: 2003/2/17 14:58
登録日: 2002/4/28
居住地: 神奈川
投稿: 465
Re: "headlines" モジュール:utf-8 を表示させるには?

XMLでEUC-JPは珍しいですね。Shift_JISだって珍しい部類だと思いますが
MS系の制限でSJISの必要があり、使っているぐらいだと思います。

XML関係のライブラリはUnicode対応は必須ですけど、他は推奨なもんだから
軒並み対応してなくて、私はPHPスクリプトのUTF-8の移行に拍車が掛かりました。

#Unicode、これで一切の悩み解消とはなりませんでしたけど。

#変換テーブルの差異など、○○系Unicodeとか区別したいぐらい。

ところでFlashでUTFが使えるようになったのって、従来のSJISとの
相互変換機能もアクションスクリプトに追加されてるのですか?

rh
投稿日時: 2003/2/17 17:18
新米
登録日: 2003/1/23
居住地: Sunnyvale, CA
投稿: 2
Re: "headlines" モジュール:utf-8 を表示させるには?
引用:
ところでXOOPSやPHPNUKE系以外でRSSをEUCで配信しているアプリ・サイトってあるのでしょうか?

いまんとこXoopsやPHPnuke以外では見たことないですねー
LAMP構成のサイトで自前でRSSを出してるところでは、けっこうEUCだったりするのかもしれませんね

onokazu
投稿日時: 2003/2/17 19:59
管理人
登録日: 2002/1/25
居住地:
投稿: 1587
Re: "headlines" モジュール:utf-8 を表示させるには?
引用:
ところでFlashでUTFが使えるようになったのって、従来のSJISとの
相互変換機能もアクションスクリプトに追加されてるのですか?

従来の方法については使ったことないのであまり詳しくは分からないのですが、アクションスクリプト内で
System.useCodepage=true
とすることでShift-JISでも正常に読み込んでくれるようです。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
To Top