こんにちは。sayaamaと申します。
JPEx、なかなかいい感触です。軽くて^^;
しかし、私は全てUTF-8で統一しているので、xoops2の時もなんとか自力でUTF-8にしました。
今回も挑戦したのですが、一部、文字化けを起こし、今のところ回避できていませんです。
あとは、地道な作業で追っていけばわかるかもしれないのですが、
ほんの一部なので、質問させていただきました。
ここでは画像がはれないので、
http://cosoto.net/php/alex/modules/nmblog/response.php?aid=108に書き込みました。
時間があったらよろしくお願いします。
P.S. xoops2のときと同様、ディフォルトではリバースプロキシしたときに、
内部からでも外部からでもアクセスできるようにはなっていないので、その部分は別途
書き換えてます。
どうもRESありがとうございます。
まだ解明中ですが、
メニュー以外にもいくつかあり、
$rank = $db->fetchArray($result);
$aa = $rank['rank_title'];//デバッグ用
$bb = mb_detect_encoding($aa);//デバッグ用
としたときに、$bbが”EUC-JP”が返ってくる部分がありました。
なぜそうなるかは、また解明します。
少なくとも他ではUTF-8が戻ってきているから表示されていると思うので^^;^^;
また報告させていただきます。
WindowsServer2003/WindowsXP
Apache2.0.63
PHP5.2
MySQL5.0
s,sayama
どうもありがとうございました。
自己解決しました。
一応、、【I'm engineer!】を自称してますんで^^;
問題は、これ。
ini_settings.php。
<?php
charcode=utf8;
/**
#Example: If your database character is EUC-JP
charcode=utf8
*/
?>
第1の間違い:このファイルがINIだとは知らずに、charcode=utf8;の記述を追加した。
第2の間違い:INIは通常、最初に出たやつが優先だろ!という、windows系知識にとらわれてしまっっていた。
ということで、無事にutf8の部分をutf8に書き換えて終了。
まだ1か所のみありますが、それはまた今度で。
今後ともよろしくお願いします。
●微妙に残っている箇所●
追加情報です。
ini_settings.phpの話ですが、結論から言うと、
【UTF-8でMySQL5の時は設定してはダメ】です。
※utf8に指定するのもNG
これは、MySQLの問題として、
【skip-character-set-client-handshake】問題
があり、これを設定してないと文字化けする可能性が高いのですが、、
JPExはまさにそれに該当します。
よって、結論から言うと、、
JPExをUTF-8化するにあたり、MySQL5の場合は、、
■skip-character-set-client-handshake が設定されており、defualtをUTF8にしている場合
→JPExをUTF-8化において、charcode=utf8 を設定する。またはcharcode=には何も設定しない。
■skip-character-set-client-handshake が設定されていなく、defualtをUTF8にしている場合
→JPExをUTF-8化において、charcode=utf8 を設定をしてはダメ。charcode=には何も設定しないこと。
または、class/database/mysqldatabase.phpにおいて
if(defined('XOOPS_CHARCODE')){
mysql_query("SET NAMES '" . addslashes(XOOPS_CHARCODE) . "'", $this->conn);
}
をコメント化することでもOKです。
以上、よろしくお願いします。