データベース入門


MySQL - Linux環境のWebサイトでの文字化けおよびその解決方法

2011/04/08 17:41Update
TAGS: MySQL | Linux | 文字化け

Windows環境でうまく行ったのに、Linux環境で文字化けてしまう場合の対処方法です。

まずは、次の記事をご覧になってください
初めてのMySQLの実行 - 最低限のやらないといけないこと
Java Webアプリ開発における文字化け対策 - 概要
Java Webアプリ開発における日本語パラメータの文字化け対策

1)MySQLが採用する文字コードの確認
例:
mysql> STATUS
--------------
Connection id:          199057
Current database:
Current user:           xxxx
SSL:                    Not in use
Current pager:          less
Using outfile:          ''
Using delimiter:        ;
Server version:         x.y.z
Protocol version:       xxxx
Connection:             xxxx
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            xxxx


mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| 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     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

2)文字コードを統一する(たとえば、utf8に)
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| 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                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>
※utf8を適当な文字コードに変更してください。

これで、データベース原因の文字化けがなくなります。

有关作者
Syboos.jp編集長システム設計や開発、保守運営などを行ってます。オープンソース技術に興味があります。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation