标题:Mac下使用mysql php出现中文乱码问题解决

-------------------------------------------------------------------------------------------------------------------------------

时间:2017/12/30 18:36:30

-------------------------------------------------------------------------------------------------------------------------------

内容:

本来在windows下装了一个phpstudy来练练手 学习下php和mysql,那个phpstudy很强悍,不用自己配置php和mysql还有apache全部都弄好,然后放假在家就把代码带回家用mac 接着敲,重新构建了数据库

在phpstudy里面自带了可视化的mysql管理工具,在mac下 最开始用phpmyadmin 老掉牙的,就是比自己敲代码强点点
但是不够有效率 查询了百度用mysql官方家的 mysqlworkbench,然后又碰到乱码的问题

添加的中文到数据就乱码
MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!!
utf8可以兼容世界上所有字符!!!!

进入 mysql 命令行, 用 show variables like 'character_set_%'; 查看编码

| character_set_client | utf8 
| character_set_connection | utf8 
| character_set_database | utf8 
| character_set_filesystem | binary 
| character_set_results | utf8 
| character_set_server | latin1 

| character_set_system | utf8

确保所有的编码方式都为 utf8 就行了



发现是服务器的设置问题 其实就是本地的机器

然后研究mac怎么设置


在 /etc/下,新建一个文本文件 为my.cnf


并加入下面4行

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8


重启搞定


当然也有偷懒的办法 就是在mysql 语句 建立连接以后 使用

mysql_query("SET NAMES utf8"); 

这样就可以不用设置了

不过缺点就是每次php代码就多一句话

好处就是不管什么服务器 通吃

本来在windows下装了一个phpstudy来练练手 学习下php和mysql,那个phpstudy很强悍,不用自己配置php和mysql还有apache全部都弄好,然后放假在家就把代码带回家用mac 接着敲,重新构建了数据库
在phpstudy里面自带了可视化的mysql管理工具,在mac下 最开始用phpmyadmin 老掉牙的,就是比自己敲代码强点点
但是不够有效率 查询了百度用mysql官方家的 mysqlworkbench,然后又碰到乱码的问题

添加的中文到数据就乱码
MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php)的连线语系设定问题
强烈建议使用utf8!!!!
utf8可以兼容世界上所有字符!!!!

进入 mysql 命令行, 用 show variables like 'character_set_%'; 查看编码

| character_set_client | utf8 
| character_set_connection | utf8 
| character_set_database | utf8 
| character_set_filesystem | binary 
| character_set_results | utf8 
| character_set_server | latin1 

| character_set_system | utf8

确保所有的编码方式都为 utf8 就行了



发现是服务器的设置问题 其实就是本地的机器

然后研究mac怎么设置


在 /etc/下,新建一个文本文件 为my.cnf


并加入下面4行

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8


重启搞定


当然也有偷懒的办法 就是在mysql 语句 建立连接以后 使用

mysql_query("SET NAMES utf8"); 

这样就可以不用设置了

不过缺点就是每次php代码就多一句话

好处就是不管什么服务器 通吃