这几天搞了个PHP读取excel表再读入Mysql的东西,可是被其中的中文乱码搞晕了。html
经过上网翻阅很多帖子以后,思路清晰了很多,以此记录下来学习学习mysql
须要在几个地方设置编码为UTF8web
浏览器器端设置 UTF8sql
PHP:数据库
.在语句最开头加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />浏览器
或.在PHP语句中加入 header("Content-Type:text/html;charset=utf-8");学习
读取Excel表:ui
//$data->SetoutputEncoding("utf-8");编码
PHPExcel中支持,不用加了spa
Mysql中:
打开my.ini之后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭,试过无效
1.因此:建数据库时设置编码为UTF8,该库中的表默认也就是UTF8编码了
Create/ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
更改表同理:也能够在建表语句后面加上 ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看表:mysql> show create table tablename;
2.1 在PHP中加入一条 mysql_query("set names utf8")
Set names utf8 等价于如下三条语句
客户端:SET character_set_client='utf8';
链接器:SET character_set_connection='utf8';
返回值:SET character_set_results='utf8';
2.2 在PHP中加入一条 mysql_qurey("set character set utf8")
至关于2中SET character_set_connection='utf8'; 链接数据库时的编码
建库的时候不设置默认编码之后再改的时候表字段的编码仍是默认的 Latin1