当我们通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8,并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在connection连接层上。解决方法是在发送查询前执行一下下面这句: 1. SET NAMES 'utf8'; 它相当于下面的三句指令:
当我们通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8,并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在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的.
alter database name character set utf8;
5. 修改表默认用utf8.
alter table type character set utf8;
6. 修改字段用utf8.
alter table type modify type_name varchar(50) CHARACTER SET utf8;