私はバージョンアップしないまま、非公開のNucleusサイトを持っています。
なんとバージョンは驚きの、Nucleus CMS v3.3!もはや誰も使ったいないであろう奇跡バージョン!
一般公開していないので、セキュリティ—的にも特に気にせず使っていますが、ある日文字化け!何もしていないのに、
Xserverで大規模なシステム調整が入ったようで、PHPの文字コードに関するデフォルト設定がuft-8に強制的に変更されてしまいました。そのため、EUC-JPの私のサイトは文字化けしたようです。データベースを見ても化けておらず、あくまでも表示の時の文字化け、これは解決できそうです。
まず、Nucleusサイトのファイル構造を見て、sql関係の場所を探ります。
気になる箇所はここです。「nucleus/libs/globalfunctions.php」ここにはsql文がまとめて入っています。
480行辺りに関係ありそうな部分が。ここですね、ここでmysql_queryの時の文字コードを「ujis」にセットするようにします。これで文字化け解消!以外に簡単でしたね!
/**
* Connects to mysql server
*/
function sql_connect() {
global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $MYSQL_DATABASE, $MYSQL_CONN;
$MYSQL_CONN = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD) or startUpError(‘
Could not connect to MySQL database.
‘, ‘Connect Error’);
mysql_select_db($MYSQL_DATABASE) or startUpError(‘
Could not select database: ‘ . mysql_error() . ‘
‘, ‘Connect Error’);
mysql_query( ‘set character set ujis’ ); //2019.7.29 文字化け対策で追加!
return $MYSQL_CONN;
}