2 yezheyan yezheyan 于 2015.07.21 09:01 提问

php文件打开后出现中文乱码有哪些原因?

我用sublime,设置了UTF-8,前几天刚装好还没事,昨晚写了个文件打开后发现中文全乱码了,有没有可能是插件的问题?

8个回答

yezheyan
yezheyan   2015.08.28 09:47
已采纳

哎呀,把问题给搞混了,这个问题主要的原因时windows的编码问题,用iconv函数解决

keryang
keryang   2015.07.21 09:22
  1. php文件本身的编码与网页的编码应匹配 a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html;charset=gb2312"),静态页面添加,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。 b.如果想使用utf-8编码, 那么php要输出头:header(“Content-Type:text/html; charset=utf-8"),html静态页面添加,所有文件的编码格式为utf-8。 完美解决方案:http://jingyan.baidu.com/article/6181c3e047313a152ef153cf.html
yezheyan
yezheyan 谢谢回答
大约 2 年之前 回复
keryang
keryang 回复yezheyan: 嗯嗯,PHP中文件的名字不能是中文,英文的就没问题
2 年多之前 回复
yezheyan
yezheyan 回复yezheyan: 把每个文件名都用iconv转换了一下,问题就解决了
2 年多之前 回复
yezheyan
yezheyan 回复yezheyan: 我突然觉得这是Windows中文编码的问题
2 年多之前 回复
yezheyan
yezheyan 回复陈凯昂: 如果直接echo输出中文没有问题,是正常的,但我写的遍历程序输出文件夹下的文件时,凡是中文的都乱码了
2 年多之前 回复
keryang
keryang 回复yezheyan: 那就把其他的卸了用一个编辑器,太多编辑器会在环境变量里产生冲突的
2 年多之前 回复
yezheyan
yezheyan 回复Strart: 试过了,不然不来这里问
2 年多之前 回复
keryang
keryang 回复yezheyan: 也许是的,前期最好用editplus编辑,总之把编辑器的编码方式和 header里的改成一样的,一般情况下不会出现乱码的问题
2 年多之前 回复
Strart
Strart 回复yezheyan: 右键更改打开方式,选择utf-8. 打开文件后再更改打开方式,两个都要改
2 年多之前 回复
yezheyan
yezheyan 是不是我安装了太多的编辑器 了?gVim、sublime text、notepad++、NetBeans
2 年多之前 回复
yezheyan
yezheyan 回复陈凯昂: 静态html网页打开显示没有问题,就是php文件打开后中文显示全乱了
2 年多之前 回复
yezheyan
yezheyan 回复陈凯昂: ......我把charset改成gb2312果然没有问题了,但我还是有疑问,我之前全部保存为UTF-8编码打开文件是没有问题的,但昨天手贱不知道改了什么,现在用什么编辑器编辑用浏览器打开后中文全乱码了
2 年多之前 回复
keryang
keryang 希望能帮到你
2 年多之前 回复
yezheyan
yezheyan   2015.07.21 09:18

在编辑器里中文显示没有问题,但写的php文件打开后是中文的就乱码了,显示成四角星

yezheyan
yezheyan   2015.07.21 15:34

服了,只有改成UTF-8无BOM并把charset改成gb2312的时候才显示正常,其他不管怎么改都会显示乱码,但同一个编辑器编辑静态的HTML文件又没有问题

yezheyan
yezheyan 如果直接echo输出中文没有问题,是正常的,但我写的遍历程序输出文件夹下的文件时,凡是中文的都乱码了
2 年多之前 回复
yezheyan
yezheyan   2015.07.21 15:48

之前我也写过一样的遍历方法,但还没有出现过文件名会中文乱码的问题,有哪位大神告诉一下原因?因为我不管是有BOM还是无BOM的格式都试过了,最后要么改格式为UTF-8无BOM,要么用iconv函数把文件名都转换了才不会乱码,其他地方echo中文是没有问题的

yezheyan
yezheyan 无BOM的UTF-8还得再前面加上header("Content-type:text/html;charset=gb2312")
2 年多之前 回复
baidu_29834953
baidu_29834953   2015.07.22 09:14

页面编码和所有的编码都要一致,不要一个GBK一个UTF这样子,加一个header("content-type:text/html;charset=utf-8")

yezheyan
yezheyan   2015.08.28 09:46

我在github上一个大神帮我解决了这个问题,大家有空也可以看一下编码方面的知识

CSDNXIAOD
CSDNXIAOD   2015.07.21 09:04

php中出现中文乱码的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片