TAMURA Toshihiko
tamur****@bitsc*****
2004年 1月 22日 (木) 11:19:36 JST
こんにちは、田村です。 玉川さん: > その結果、関数内の先頭の (general.php 618行目) > $search_str = trim(strtolower($search_str)); > で文字化けが発生していました。 あ、そうですか。ありがとうございます。 伊藤さんの件も同じ現象かもしれませんね。 strtolower()は、マニュアルによると > string のアルファベット部分を すべて小文字にして返します。 ということで、 通常は2バイト文字は変換しない(この問題が起きない)のですが、 こうも書いてありますので、 > 「アルファベット部分」は現在のロケールにより決定されます。 > このため、たとえばデフォルトの "C" ロケールである場合は、 > ウムラウトA (A) のような文字は変換されません。 ロケールの影響を受けているのかもしれません。 # しかし、それはどんなロケール? 対策としては、strtolower()をmb_strtolower()に置き換えれば うまくいくように思います(アルファベットによる検索にも好都合です)。 mb_strtolower()は内部文字エンコーディングにしたがうとのことです。 ただ、他のところでも何か問題が出ないか、 ちょっと心配ですね。 -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/