用php这么久,今天终于要彻底总结下php乱码问题,因为实在是吃过不少亏啊
1:header("content-type:text/html;charset=utf-8")或者<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
都只是声明本页的字符编码格式,仅仅是声明,如果浏览器编码格式设为自动识别的话就会将字符编码设为预先声明的格式
2:在浏览器输出时,有两个注意点:一个是要输出字符本身的字符编码,一个是浏览器输出时的字符编码格式
对于字符本身的编码格式可以通过修改文件本身字符编码,或者通过字符编码转换函数来转化,常用的函数有iconv等
对于浏览器输出的字符编码格式,如果设成自动识别,那么浏览器会根据页面中预先声明的字符格式
3:连接数据库时凡是有中文的地方有三个地方:
字符本身的编码
连接数据库时的连接编码:mysql_set_charset("utf-8");
数据库中数据的字符编码
4:导出excel文件最坑了,首先声明页面的格式要和文件的字符格式相一致都为utf-8
另外在设置文件名的时候要注意,widows系统系识别gbk编码,所以要用iconv将文件名编码格式改为gbk