2014年7月25日金曜日

コアサーバー バージョンアップの障害

しばらく前から、コアサーバーがバージョンアップしています。
この影響で動かなくなったプログラム(サイト)がいくつかあります。

<バージョンアップ内容>
PHPが5.2から5.3。
MySQLは、5.1のまま、マイナーバージョンアップ


<トラブル>

・フォーム関係のトラブル
register_globals あたりの設定が変わったようです。

・文字化けトラブル
MySQLには、utf8でデータが入っていますが、これが、正しく取り出せなくなりました。
また、新規にデータを登録すると、文字化けして登録されます。逆に、取り出し時には正常に戻されます。

コアサーバーのMySQLは、デフォルト文字がlatin1です。
PHP5.2では、データが異なる文字コードに変換されて登録されていたのだと思います。
これが、PHP5.3.6以降になったことにより、正しくデータを保存できるようになったのだと思います。
これから、データを登録する場合は問題ありませんが、既にあるデータは、一度、データベースから取り出して、正しく入れ直すか、そのまま使うなら、データベースにアクセスする文字コードをlatin1にする必要があります。

推測ですが、utf8の文字列がlatin1と認識され、utf8への変換処理がされて保存。取り出し時には、逆に、utf8からlatin1への変換処理がされて、元のutf8に戻っていました。
これが、PHP5.3では、utf8がutf8として正しく認識されて、変換されずに保存。取り出し時にも、変換されずに戻されました。
既に、latin1からutf8の変換処理が行われたデータは、取り出し時には、変換されないため、文字化けしたままと思われます。

この他にも、PHPのバージョン違いによる不具合が発生しています。


基本的には、以前の困った仕様に合わせて、プログラムを修正していた部分が、正しい仕様になったために、逆に、不具合として出ている感じです。

0 件のコメント:

コメントを投稿