• ベストアンサー

DBの文字コード切り替え

MySQL 5.6 なのですが・・・・ DBの文字コードはDB作成後にデータを登録した後に、途中で文字コードを変更した場合、DBに登録済みの全角文字はどうなりますか? 文字化けする場合、変換ツールのようなものはあるのでしょうか? また文字コードの変更は ini ファイルを変更してMySQLを再起動するだけでいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

mysql の ALTER DATABASE や CREATE DATABASEにおける文字コード設定というのは、これから新規にtableを創るときに、table に文字コードを指定しなかったら、そのdatabaseに設定してあるdefault値を使うと言う意味ですので、既に作成済みのtable に対しては、何も作用を及ぼしません。 作成済みtable内の多バイト文字は、作成時の文字コードのままですので、そのつもりで、取り出さないとかえってプログラム側で文字化けすることになるでしょう。 show create table でcreate 文を表示してみると、table作成時に CHARACTER SETを付けて無くても、作成時のdatabaseに設定されていたCHARACTER SET 指定が追加されているはずです。 それから、iniファイルで変更するのは、サーバー本体のsystem 設定なので、これまた、databaseに対する設定とは別物です。 サーバ、データベース、テーブル、カラムの 4 段階で設定があります、マニュアル参照してください http://dev.mysql.com/doc/refman/5.1/ja/charset-syntax.html

関連するQ&A