NakajiJapan

餓鬼の超弩級日記


Mysqlのコンソールが文字化ける(こんなことだった)

文字コード関連の話。ここ数年文字コードの話ってあるけどさなかなか統一されないよねっていうことと
設定箇所がまだ乱立してるのが面倒くさい。
今だとPHP+apache+linux+mysqlの4つそれぞれせってしないといけないもんね。

んで今回も少しだけとまどったわけなのです。ほんとにちょっとだけよ。

まぁ、そのときの状態。
①HTTPの入力・出力・内部処理はUTF-8で画面出力自体は問題なく表示される。
ツーことはDBには同じ文字コードで入っているはず。
②コンソール上でクライアント動かしてSQL打っても表示されない。
ツーことはクライアントの設定かな

あ、それですね。

まずはDBの文字コード確認。

mysql> SHOW CREATE DATABASE testdb;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| testdb| CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.00 sec)

クライアントはどうか

mysql>  SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | latin1|
| character_set_connection | latin1|
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | latin1|
| character_set_server     | latin1|
| character_set_system     | utf8   |
+--------------------------+--------+
7 rows in set (0.00 sec)

グーグルちゃんのおかげで設定すべき箇所みつけました。

# char set
default-character-set = utf8

# サーバのエンコードを引き継ぐらしい
skip-character-set-client-handshake

設定後の確認

mysql>  SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| character_set_client     | utf8   |
| character_set_connection | utf8   |
| character_set_database   | utf8   |
| character_set_filesystem | binary |
| character_set_results    | utf8   |
| character_set_server     | utf8   |
| character_set_system     | utf8   |
+--------------------------+--------+
7 rows in set (0.00 sec)

はいおk

No Comments »

指定ファイルを一括で文字コード・改行コード変換する

こんなコマンドあったのでめも。


# 追記:2010ー02-16
# こっちもいいぉ
find ./* -type f | xargs -n 10 nkf -w -Lu --overwrite

上記のだといまいち不要なファイルまで変換されて大変なことになってしまう。。。


# this is my best
find -name '*.js' | xargs nkf -w -Lu --overwrite

参考URL
http://x68000.q-e-d.net/~68use……ckup?xargs

No Comments »