- 2008-05-02 (金)
- 技術
Mac OS X LeopardでRailsで遊べる環境を構築するまでで環境構築までは終わったんですが、次は文字化けに悩まされるハメに・・・
やっとのことで解決しました!
Rails側の文字コード設定
database.yml
development: adapter: mysql database: railsTest username: root password: 19805525 timeout: 5000 host: localhost encoding: utf8 ←ここです socket: /tmp/mysql.sock
application.rb
class ApplicationController < ActionController::Base # Pick a unique cookie name to distinguish our session data from others' session :session_key => '_bookTest_session_id' before_filter :set_charset private def set_charset headers["Content-Type"] = "text/html; charset=UTF-8" end end
environment.rb
1行目に
$KCODE = "UTF8"
MySQL側の文字コード設定
■文字コードを設定する
/etc/my.cnf を編集する。
[client]via: MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活
default-character-set=utf8
[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
ボクは/etc/my.cnfがなかったので以下の手順を踏んだ。
■/etc/my.cnfが無いとき
インストールしたMySQLの中のサンプルをコピーする。
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf再起動して有効になる。
via: MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活
この状態で
sudo /usr/local/mysql/bin/mysql -u root -p railsTest
でMySQLにログインし、
mysql > status
で以下が表示されるようになる。
また、
mysql > show variables like 'char%';
で以下のようにUTF-8だらけになればよい。
実はDatabaseを作成するときの文字コード指定を間違えていっこうに
db characterset : latin1
になったままになってハマってしまった。
これだと上記の手順をすべて踏んでも文字化けが解消されなかった。
なので、ちゃんとカラムを作成するときも以下のように文字コードを指定する必要がある。
あとRailsなのでidカラムにはオートインクリメントを付けること。
これもさっきすごいハマってしまった。
またmy.cnfのパーミッションは気をつけないと永遠にハマる可能性がある。
ボクは初め問答無用で
chmod 777 /etc/my.cnf
ってしてたんだけど、これだとMySQLを実行した際にignoredって表示されて無視されてしまった。
以下の記事で解決した。
chown mysql:mysql my.cnf
chmod 600 my.cnf
が正解です。my.cnf は
mysqld_safe が 動作する際に mysqlユーザーのみ参照できればいいわけで。mysqlユーザーがオーナーであれば 600 でいいわけです。そうすれば、world-writable にならずに済みます。
via: Eriane ver 0.6.1 » 忙しい・・・
本日はハマりまくりな1日でした〜。
疲れた・・・w
■参考リンク
・sunadaaの日記 : my.cnfを無視させないようにする - livedoor Blog(ブログ)
・文字化け対策のためのあれこれ | Katawara.*
・MySQL 文字化けを防ぐ、文字コードの確認と設定 | 渋谷生活
- Newer: 買った本
- Older: Mac OS X LeopardでRailsで遊べる環境を構築するまで
Trackback:0
- TrackBack URL for this entry
- http://hisasann.com/cgi-bin/mt/mt-tb.cgi/998
- Listed below are links to weblogs that reference
- Mac OS X LeopardでRailsとMySQL連携で文字化けする場合の対処 from HouseTect, JavaScriptな情報をあなたに