返回json格式数据,出现中文乱码问题

来源:2-2 环境与开发工具

许安强

2017-06-06

数据库配置为utf-8,php默认也为utf-8,

http://szimg.mukewang.com/5935820200014de906650155.jpg

在/ete/php.ini也设置为utf-8

http://szimg.mukewang.com/593582020001dae605170249.jpg

http://szimg.mukewang.com/593582020001e15c08620508.jpg

错误页面为

http://szimg.mukewang.com/593582ba00019edf05950440.jpg

出现exception页时编码正常,

http://szimg.mukewang.com/593582f50001e34f04660242.jpg

写回答

4回答

许安强

提问者

2017-06-08

解决方案:通过show variables like '%char%';查询到客户端字符集,数据库字符集,服务器字符集都不是utf8,我的mysql5.7通过rpm安装,找到mysql的配置文件/etc/my.cnf,进行如下配置

1、在[client]字段里加入default-character-set=utf8,如下:

[html] view plain copy

[client]  

port = 3306  

socket = /var/lib/mysql/mysql.sock  

2、在[mysqld]字段里加入character-set-server=utf8,如下:

[html] view plain copy

[mysqld]  

port = 3306  

socket = /var/lib/mysql/mysql.sock  

character-set-server=utf8  

3、在[mysql]字段里加入default-character-set=utf8,如下:

[html] view plain copy

[mysql]  

no-auto-rehash  

default-character-set=utf8  

然后通过service mysqld restart重启数据库


使用SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码全已改成utf8。
 

+--------------------------+----------------------------+  
| 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/ |  
+--------------------------+----------------------------+


2
0

7七月

2017-06-06

检查下PHP文件的 编码格式。

0
0

许安强

提问者

2017-06-06

contentType->application/json;charset=utf-8//szimg.mukewang.com/59358b0500016b3006580614.jpg

0
1
7七月
之前不是看你说 数据库的 charset字符集是utf-8的吗
2017-06-08
共1条回复

7七月

2017-06-06

看看这个乱码的response里的编码是什么

0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程