MySQLの文字コード設定

0pt

文字コードをUTF8にする

とにかくこれをやっとけばOK。
/etc/my.cnfに以下の記述を追加

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
...
[mysql]
default-character-set = utf8


latin1でデータ入力してしまい、日本語が全部文字化けする

http://railspress.matake.jp/mysqlに既に存在するデータベース内部の文字コードを参考にしてUTF-8化に成功。一時はもうダメかと思った…。

#-c -nオプションつけるとうまくいかなかった
$ mysqldump -u username -p -–default-character-set=latin1 -d mydatabase> database.dump

# Eオプションつけるとダメだった。
$ nkf -w database.dump> database.utf.dump

$ sed 's/latin1/utf8/g' database.utf.dump> database.utf.dump

nkfすごいね。

昔書いたやつ


MySQL4.1でも5.0でもmy.ini/my.cnfでdefault-character-set=utf8を設定しまくってるのに、phpMyAdminでマルチバイトが使えない。


以上を参照すると「skip-character-set-client-handshake」オプションを入れるとあら不思議、文字化けなくなるよと書いてるのに、むしろ今まで文字化けしなかったところまで化けた。

なーかおかしいと思いながらとりあえず入力すると、今入力したやつは文字化けせずに表示されるではないか!

そう、ようするに今までUTF-8で保存してるとばっかり思ってたのに全然違うコードで保存されてたのね…。UTF-8→謎のコード→UTF-8っていう、変換がなされてたのね。これはショックだわ。

「MySQLの文字コード設定」について友人に書いてもらう。

あなたにとって「MySQLの文字コード設定」とは?

ログインするとワンクリックでキーワードを投稿できます

ログインする 新規登録する

他の人の「MySQLの文字コード設定」を見る