Weblogいつか使える、備忘録。管理2009-02-050Windowsでは、Shift_JISによく似たCP932(MS932)という文字コードが用いられているわけですが、CP932には存在している文字、記号がShift_JISには存在しない場合「?」に置き換えられて入力されます。実は、過去ログ検索を作っているときに最初Shift_JISでテーブルを作っていたのですが、これの影響で文字化けが起きていることが後で解りました。CP932の文字をMySQLのテーブルに挿入する方法の一つにテーブルの照会順序をutf8_unicode_ciに変えることがあり、CP932に存在して、Shift_JISには存在しない文字、記号が扱えるようになります。文字が存在しないならば、文字が存在する文字コードを使えば良いと言うことです。“?”);CP932を扱う列をUTF8にして、以下のように書き直すことで文字化けを防ぐことが出来ます。utf8));まぁ、最初からUTF8にすれば良いってだけの話です。