mysql> SHOW VARIABLES LIKE ‘character_set_%‘;
 +--------------------------+----------------------------+
 | Variable_name | Value |
 +--------------------------+----------------------------+
 | character_set_client | latin1 |
 | character_set_connection | latin1 |
 | character_set_database | latin1 |
 | character_set_results | latin1 |
 | character_set_server | latin1 |
 | character_set_system | utf8 |
 | character_sets_dir | /usr/share/mysql/charsets/ |
 +--------------------------+----------------------------+
 7 rows in set (0.00 sec)
 mysql> SHOW VARIABLES LIKE ‘collation_%‘;
 +----------------------+-------------------+
 | Variable_name | Value |
 +----------------------+-------------------+
 | collation_connection | latin1_swedish_ci |
 | collation_database | latin1_swedish_ci |
 | collation_server | latin1_swedish_ci |
 +----------------------+-------------------+
 3 rows in set (0.00 sec)
默认就是瑞典latin1,一下是换成我们自己的编码,如utf8:
外部访问数据乱码的问题就出在这个connection连接层上,解决方法是在发送查询前执行一下下面这句:
 1. SET NAMES ‘utf8‘;
 它相当于下面的三句指令:
 SET character_set_client = utf8;
 SET character_set_results = utf8;
 SET character_set_connection = utf8;
 一般只有在访问之前执行这个代码就解决问题了,下面是创建数据库和数据表的,设置为我们自己的编码格式。
2. 创建数据库
 mysql> create database name character set utf8;
 3. 创建表
CREATE TABLE `type` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `flag_deleted` enum(‘Y‘,‘N‘) character set utf8 NOT NULL default ‘N‘,
 `flag_type` int(5) NOT NULL default ‘0‘,
 `type_name` varchar(50) character set utf8 NOT NULL default ‘‘,
 PRIMARY KEY (`id`)
 ) DEFAULT CHARSET=utf8;
 4. 修改数据库成utf8的.
mysql> alter database name character set utf8;
 5. 修改表默认用utf8.
mysql> alter table type character set utf8;
 6. 修改字段用utf8
mysql> alter table type modify type_name varchar(50) CHARACTER SET utf8; MySQL编码设置
原文:http://www.cnblogs.com/perseverancevictory/p/4290892.html