閉じる

MySQLでテキストのエンコードを変更する

今まで ujis(euc-jp)で保存をしていたけど、思い切って utf8に切り替えることにした。
まずは保存済みのテキストをダンプして文字コードを変更。

mysqldump -u root -p –database diving -h sakura –default-character-set=ujis -c –opt –table HOGEHOGE_TBL |sed -f ujis2utf8.sed |nkf -w> tmp.txt

ちなみに ujis2utf8.sedは以下の通り。

s/CHARSET=ujis/CHARSET=utf8/g
s/SET NAMES ujis/SET NAMES utf8/g

次いでテーブルを作り直す。

mysql -u root -p –database diving -h sakura <tmp.txt

以上の作業をテーブルの数だけ繰り返すと。
テキストは含まないけれど、デフォルトのエンコードが ujisになっているテーブルについても修正。

mysql > alter table BINARY_TBL default character set utf8;

最後に新しく作られるテーブルについて utf8になるように設定変更。

mysql > alter database diving default character set utf8;

仕上げに mysqlおよび mysqldのデフォルトが utf8になるように設定変更。

/etc/my.cnf
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)