phpMyAdminの文字化け 照合順序じゃなかった

とある古いオープンソースのPHPプログラムを元に開発をおこなっていたところ
プログラム上は問題無く表示されていたが、phpMyAdminから見ると日本語データのみ文字化けしている状況が発生。
phpMyAdminの問題と思い、サーバー接続、データベースやテーブルの照合順序を見直したが、問題解決に至らなくムキー!となりましたが、問題はプログラム側のDB接続だったって話。

結論をいうと、DB接続時の下記ソースに mysql_set_charset(“utf8”, $this->db_obj); を追記で解決でした。
utfが一般的になる以前のソースであった為、ここではソースの言語とDB側の設定で変更出来るよう想定していたのかなぁ?

  function database() {
    $this->db_obj = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
    mysql_select_db($this->db_name, $this->db_obj);
  }
  function database() {
    $this->db_obj = mysql_connect($this->db_host, $this->db_user, $this->db_pass);
    mysql_set_charset("utf8", $this->db_obj);
    mysql_select_db($this->db_name, $this->db_obj);
  }
Both comments and pings are currently closed.

Comments are closed.