这里有新鲜出炉的精品教程,程序狗速度看过来!
这篇文章主要介绍了服务器数据库编码格式问题解决方案的相关资料, 需要的朋友可以参考下
服务器数据库编码格式问题
最近做项目在部署到阿里云服务器上之后出现了两个问题:
1、乱码问题。
2、ajax 的 php 处理页面里面利用 json_encode() 函数返回 json 数据,则数据库返回的数据只能是 UTF8,如果是 gbk 则 json 也无法返回。
发现是数据库编码格式问题,网站使用的编码格式为 UTF8,数据库的编码格式调为了 UTF8,但是 character_set_server 的值还是 gbk。
查看数据库编码:
在 mysql 命令行里面输入:show variables like 'character%';
所以还是有乱码存在。
于是从网上找了解决方法:
在 mysql 命令行输入:set character_set_server=utf8;
OK 修改成功!返回数据也正常,但是当关闭数据库服务,重新启动,发现 set character_set_server 又变回了 gbk。
所以这个方法只能暂时性的解决。
最终找到了一个能用的不是特别好的解决方法是在执行 SQL 语句之前,先执行该 SQL 语句即可:
- $conn - >query('SET character_set_client = utf8;');
- $conn - >query('SET character_set_results = utf8;');
- $conn - >query('SET character_set_connection = utf8;');
这种解决方法个人感觉不是很好,每次执行的次数太多,如果能修改服务器数据库的编码格式最好。
来源: http://www.phperz.com/article/17/0724/310601.html