php 中文乱码问题原因分析和解决方法

php中文乱码问题对于php初学者来说确实是个令人头疼的问题。出现中文乱码的根本原因是编码不一致所造成的。

php

php

具体来说在php中一般涉及到三个地方的编码,一是php文件的编码,二是html header 头的编码,三是数据库的编码。在php中这三者的编码如果不一致就会出现中文乱码问题。

(1)php文件的编码是指php文件保存时选择的编码格式,一般选择utf-8或者gbk编码格式,如果想改变编码的格式,用ultraedit打开然后在另存为你想要用的编码格式即可。

(2)hmtl的编码即在header头的meta标签中指明的编码格式:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

(3)数据库也有自己的编码,如果从数据库取出的数据编码和上面的两个地方的编码不一致,此时也会出现中文乱码问题。我们可以通过修改mysql配置文件my.ini或my.cnf来改变数据库的编码。在文件中查找default-character-set,如果能查到则修改成自己需要的编码,如果查找不到可以自己添加上default-character-set=‘你需要的编码格式’;如果遇到从数据库里取出数据乱码的时候,通常是通过在建立连接之后发送set names ‘你需要的编码’ query语句(示例:mysql_query(“set names utf-8”))的方法来解决这一问题。

我们在平时遇到的中文乱码问题,主要是通过修改这三个地方的编码来解决。首先分析乱码是因为这三者中的那个编码和其他的不一致造成的,然后去修改他的编码。建议在进行开发之前把数据库、php文件、html charset三者的编码设置成一致的utf-8。

php 中文乱码问题原因分析和解决方法》上有1条评论

  1. Pingback引用通告: php读取mysql中文乱码问题 | webfuns--趣味互联网

发表评论

电子邮件地址不会被公开。 必填项已用*标注