今、dotProject を扱っています。

無事にインストールも終了し、さて適当に Company でも追加するかと思い、日本語の会社名を入力して submit したところ、会社名がカラの会社情報が作成されてしまいました。
じかにデータベースを覗いて見ても、company_name 列には何も入っていません。

試しに、データベースの管理ツールで、直接このカラの company_name を編集して日本語を入れてみました。
dotProject 上では、文字化けしました。ブラウザのエンコードをEUC_JPに変更すると、表示されました。どうも、PHP と MySQL 間でエンコードの問題が起きているようです。

解決策として、次の一行を追加することで、修正できました。イタリックの赤字の部分が、挿入した行です。

/includes/db_connect.php

// Quick hack to ensure MySQL behaves itself (#2323)
$db->Execute("SET sql_mode := ''");
mysql_set_charset("utf8");

要は、データベース接続が作成された直後に、文字コードを変えるのです。

この場所が適当かどうか、この変更の後に問題がないか、あまり詳細なテストをしていませんが、とりあえずは期待通り動いています。

ちなみに、当然ながら PHP のコードや MySQL の各種エンコード関係の設定は、UTF-8 にしたうえでの、操作です。