php下载文件乱码解决

Posted by 老毛 on 十月 21, 2009. Category:Website. 523 views. No Comment

公司的一个项目涉及上传下载文件的功能,之前使用都很正常的,不知什么原因,最近下载文件总乱码,以中文进入下载却可以正常下载。

一开始以为上传的时候把文件编码给改了,但即使上传下载在同语言环境下也会出现乱码。观察发现无论什么语言下上传,中文下载都不会乱码。排除上传的问题。

但下载的代码是都是同一个文件哈,唯一的区别就是包含的资源文件不同,程序会根据语言常量自动包含当前语系的资源文件。会不会是资源文件的问题?

将所有资源文件替换为中文的资源文件,下载,没有乱码。

原来其它非中文的资源文件在编辑时编码被改变了。只需将文件编码改成与网站一致的即可。

“include”、“require”引入的文件在下载页面并没有输出任何内容,不知道为什么会引起乱码?

后记:

又查了下资料,原来是BOM(Byte Order Mark)惹的祸,保存为UTF-8格式的文本之后,有些编辑器会在文件头部加上BOM(Byte Order Mark)来标记多字节编码文件的编码类型和字节顺序,BOM标记会同字节流一起传到客户端。

值的注意的是:

Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。

使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(虽然BOM对UTF-8来说并不是必须的)

Tags: , .

Leave a Reply

最近文章

最近评论

分类目录

链接

文章索引模板

标签