明凯博客

关注网站技术,一个特立独行的全栈程序员

解决PHP中输出乱码“锘?”的问题

不知道大家有没有出现过这样一个问题:

明明PHP就没有输出,但是当你include它的时候或者是直接用地址访问它的时候,会输出 “锘?” 这样的乱码!!

而且如果这个文件在一个输出网页的最前面include的话,会导致整个网页都显示乱码!!

我最近在写资源站就遇到这样的问题,而且有好几个页面都这样,调试了好久都没找出问题,郁闷死了!!

最后跑去Google了!!翻了好几页,然后又调试了近半小时,终于找到原因了~(有点小兴奋!)

好吧,先说出现这个问题的原因:

出现这个问题肯定是你写网页的时候用了记事本 ,记事本在保存文件的时候把原本文件的编码改了

记事本会默认保存为UTF-8的编码,而如果你原本网页是GBK编码的,就会出现乱码~

还有一点就是记事本会默认带BOM。

UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM。
所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一下:把带有 BOM 的小端序 UTF-16 称作「Unicode」而又不详细说明,这也是微软的习惯)。
BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order)。

微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 ASCII 等编码明确区分开,但这样的文件在 Windows 之外的操作系统里会带来问题。

解决方法:

用记事本打开乱码的网页

另存为,在弹出的保存框里,把编码改为ANSI

然后重新上传到你的服务器上,看看还有没有这个问题吧!!

, ,

相关文章

发表评论

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