Home  >  Article  >  Backend Development  >  PHP、MySQL、浏览器编码不统一的情况下如何保证正常解析?

PHP、MySQL、浏览器编码不统一的情况下如何保证正常解析?

WBOY
WBOYOriginal
2016-06-23 13:39:19736browse

最理想的情况是,把三者编码都统一成gbk或者utf-8,这样解析就一切正常。但如何不统一呢?


比如:

??PHP的编码是utf-8

??MySQL的编码是utf-8

??浏览器的编码是gbk


这时,只要考虑PHP和浏览器之间即可,因为PHP和MySQL的编码是一致的,可以不考虑。而如何告诉浏览器,PHP返回给浏览器的东西是用utf-8,请用utf-8解析?

答案:

(1)方法之一就是我们在PHP中用的那个header函数。header("Content-type:text/html;charset=utf-8");

(2)方法之二就是我们在html代码的meta标签中设置的。


而如果,PHP和MySQL之间的编码也不统一,怎么互相告诉对方自己的编码呢?

答案:

(1)方法之一就是在MySQL中修改MySQL服务器接受PHP以及返回给PHP数据时的编码,set character_set_client=utf8;是告诉MySQL服务器当前PHP发过来的是utf8编码。set character_set_result=utf8;是告诉MySQL服务器当前PHP只能接受utf8的东西。

(2)方法之二是一种简化的写法。就是直接在PHP代码中设置set names utf8;表示我PHP只发送和接受utf8编码的东西。属于上面方法一的简化。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn