Web Artisan Blog - ウェブ アルチザン ブログ

PHP:MySQL4.1で日本語が文字化けしてしまう件:utf8

PHP

2005年04月18日

アフィリエイトから企業サイト分析まで。訪問者の動きがまるわかりのアクセス解析サービス「リサーチアルチザンプロ」

LINEやSkypeみたいなビデオ通話がブラウザだけでできる!オンライン通話サービス「EZ-Interview - イージーインタビュー」

MySQL4.1では、charsetをテーブルやカラム単位で設定できます。
他にもバージョンアップによって様々な機能が追加されてますので、
MySQL3.23なんかからMySQL4.1に移行する事も多いと思うんですが、
これによって、今まで問題無く動いていたPHPによるDB処理が、
うまく動かなくなったというのもよくある話だと思います。

ここでは、MySQL3.23対応のコーディングでは問題無かったのに、
MySQL4.1になると文字化けが発生する件について触れます。
で、早速結論ですが、
「mysql_connect」関数ででDBに接続した後に、
”SET NAMES (エンコーディング)”を発行します。

※UTF-8の場合
$conn = mysql_connect("host1" , "test" , "test");
$rtn = mysql_query("SET NAMES utf8" , $conn);



この記述が抜けていると、MySQL4.1になった途端、
文字化け化けデータで更新される可能性があります。

Web面接に最適。ブラウザだけでビデオ/音声通話ができるオンライン通話サービス。「EZ-Interview - イージーインタビュー」
訪問者録画機能も付いたシンプルで高機能なリアルタイムアクセス解析「リサーチアルチザンプロ」