用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7312|回复: 18
收起左侧

CI 文件下载乱码

[复制链接]
发表于 2012-2-1 15:36:46 | 显示全部楼层 |阅读模式
Header( "Content-type:   application/octet-stream ");
Header( "Accept-Ranges:   bytes ");
header("Content-Description: PHP3 Generated Data");
header("Content-Disposition:attachment;filename=".iconv("UTF-8","GB2312//TRANSLIT",'asdsa散打.txt'));
readfile('D:\www\CI\check_ci\system\application\views\file\1111.txt');
发表于 2014-7-31 12:59:41 | 显示全部楼层
你的问题很简单,该博客已经解决了绝对好用。
http://blog.csdn.net/xingjigongsi/article/details/38315329
如果没有解决博客上留言
发表于 2012-2-1 15:51:33 | 显示全部楼层
这个和 CI 无关吧,CI 不会改 1111.txt 的
 楼主| 发表于 2012-2-1 16:10:58 | 显示全部楼层
Hex 发表于 2012-2-1 15:51
这个和 CI 无关吧,CI 不会改 1111.txt 的

这是我随笔写的文件
发表于 2012-2-1 16:28:36 | 显示全部楼层
总之CI不会修改文件内容。
 楼主| 发表于 2012-2-1 16:38:15 | 显示全部楼层
Hex 发表于 2012-2-1 16:28
总之CI不会修改文件内容。

这套代码不在CI下 就能用,在CI 下 就不能用了
发表于 2012-2-1 17:31:39 | 显示全部楼层
☆灬__嘻哈丶 发表于 2012-2-1 16:38
这套代码不在CI下 就能用,在CI 下 就不能用了

那你得把代码发上来才能知道是什么问题。
我这里下载是没问题的。
 楼主| 发表于 2012-2-1 17:38:32 | 显示全部楼层
Hex 发表于 2012-2-1 17:31
那你得把代码发上来才能知道是什么问题。
我这里下载是没问题的。

就是上面那套 在本地能用,CI用不了
发表于 2012-2-1 18:45:17 | 显示全部楼层
☆灬__嘻哈丶 发表于 2012-2-1 17:38
就是上面那套 在本地能用,CI用不了

我也是这样写的,我这里没事。。。。。。
发表于 2012-2-2 06:47:46 | 显示全部楼层
才注册,马上要求要把古老年代的PHP代码直接用到现代的CI上。

PHP复制代码
header("Content-Description: PHP3 Generated Data");
复制代码


PHP3.0的最后版本是2000-10-20,差不多是12年前的东西,直接能用是运气,有问题是正常的。

PHP复制代码
header("Content-Disposition:attachment;filename=".iconv("UTF-8","GB2312//TRANSLIT",'asdsa散打.txt'));
复制代码


是说文件在PHP执行码内,编码是UTF-8,但最终下载时的名字编码是GB,要以iconv进行换码处理。文件名字有进行换码,但文件内容却并无进行相似处理。

假若名字“asdsa散打.txt”下载后显示正常,这说明PHP文件编码确是UTF-8,以同一方法准备的“1111.txt”编码亦应是UTF-8。名字正常显示,说明下载环境确是使用GB码。但文件“1111.txt”原来是UTF-8编码,并无进行换码处理。文件显示为乱码属正常。

假若在某一环境执行结果完全正常,那是说PHP文件编码确是UTF-8,而文件“1111.txt”编码确是GB。若使用编码完全相同,执行结果不应正常。


这问题与CI并无半点关系。但在CI,并不建议直接使用header(),可使用Output class的set_header()。
 楼主| 发表于 2012-2-2 10:58:14 | 显示全部楼层
Hex 发表于 2012-2-1 18:45
我也是这样写的,我这里没事。。。。。。

谢谢你  不过我的问题还是没解决啊

本版积分规则