Skip to content

symfonyでMySQLの文字コードを指定

symfonyでMySQLの文字コードを指定 published on symfonyでMySQLの文字コードを指定 へのコメントはまだありません

symfonyではschema.ymlに書いた内容でテーブルが作られるけど、その際に文字コードがlatin1とかになってしまう場合がある(設定によるんだけど)。で、それを防ぐ方法。

database.ymlで文字コードを指定すればよいだけ。

all:
doctrine:
class: sfDoctrineDatabase
param:
dsn:      mysql:host=localhost;dbname=dbfoo
username: foo
password: secretpassword
attributes:
default_table_collate: utf8_general_ci
default_table_charset: utf8

DreamHostのmysqlコマンドで文字化け

DreamHostのmysqlコマンドで文字化け published on DreamHostのmysqlコマンドで文字化け へのコメントはまだありません

自分用メモ。

DreamHostで動いているシステムのDBの中身を触る際、phpMyAdminなんて使うのはたるいのでsshでログインしてmysqlコマンドを使う。

DBの文字コードはutf8だけど、mysqlコマンドはlatin1を使おうとする。解決方法は2通り。

1. 以下のようにコマンドラインオプションで文字コードを指定。

mysql -h mysql.example.com -u user -p --default-character-set=utf8

2. ホームディレクトリに .my.cnf というファイルを作り、そこに以下の内容を記述。ファイル名はドットで始まることに注意(3分くらいハマった)。

[client]
default-character-set=utf8