[PHP-users 27042] Re: PEAR::Pagerで文字化け

shima tetuo mlmlml @ lily.freemail.ne.jp
2005年 10月 3日 (月) 10:10:50 JST


tetuoです。

> 最初はうまくいったと思って喜んでいたのですが、
> マルチバイト文字を使用して検索をかけて、その後
> $pager->getLinks()
> で取得したリンクでページを遷移しようとすると、
> 日本語が文字化けしてエラーが起きていました。

ここが気になったのですが、パラメータとしてマルチバイト文字があるかと思い
ますが、適切なエンコーディングをかけていないのではないのでしょうか?
その為、リンクに含まれる未エンコーディングのパラメータで遷移する際、遷移
した先で、文字化けが起こるのではないでしょうか?
※憶測なのではずれている可能性があります。ソースコードを添付して頂ければ
より分かるかと思います。

Pagerは使った事がないのですが、Pager_Slidingはあります。
通常、パラメータはGET値として全てPagerがページリンクに埋め込みますが、特
定の処理がパラメータに必要な場合、Pagerに以下のパラメータを渡します。

     *  - append     (bool):   if true pageID is appended as GET value to the
     *                         URL - if false it is embedded in the URL
     *                         according to "fileName" specs
     *  - path       (string): complete path to the page (without the page name)
     *  - fileName   (string): name of the page, with a %d if append=true

pathは、PageID以外の部分で、必要となるGET値を設定します。
(aaa=000&bbb=111&.......)
↑ここで、マルチバイト文字であるパラメータをエンコードしてみてはどうでしょ
うか?

fileNameは、PageIDを独自で設定する為のものです。
例:'fileName'  => '&pageID=%d'

appendは、fileNameを使う場合、falseにします。


tetuo
mlmlml @ lily.freemail.ne.jp
http://mlmlml.seesaa.net/



PHP-users メーリングリストの案内