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

[已解决] ci 文件上传时,当文件名是中文时,上传文件名变乱码

[复制链接]
发表于 2009-9-15 23:26:16 | 显示全部楼层 |阅读模式
ci 文件上传时,当文件名是中文时,上传到服务器时,文件名变乱码?请问这个要如何处理啊?
发表于 2009-9-16 00:02:24 | 显示全部楼层
服务器如果是 linux,客户端是 windows 肯定不行,因为这两个系统编码不同,需要用 iconv 转换文件名。
发表于 2009-9-16 10:51:52 | 显示全部楼层
要看你客户端是什么编码,你服务器端是什么编码,不能乱转换啊。
不过,我的建议是不要保留中文文件名,这样后患无穷,计算机毕竟是外国人发明的。
你可以转换成其他文件名,把原始名字存到数据库里,下载的时候再动态传输文件数据。
 楼主| 发表于 2009-9-16 09:20:08 | 显示全部楼层
2# Hex
在CI中要如何更改呢?
我引用上面的贴子中的$this->upload->file_name = iconv("UTF-8","GB2312//IGNORE",$_FILES['files']['name']);
为什么不行?
 楼主| 发表于 2009-9-16 11:00:15 | 显示全部楼层
4# Hex
这个方法好.谢谢
发表于 2009-9-16 11:10:14 | 显示全部楼层
这个倒没有处理过,一般来说不保留中文比较好。因为你在写程序的时候无法预料到你的网站会运行在什么样的服务器上,可能是Linux也可能是Windows,这个你要根据不同情况来区分,转换编码很麻烦的。
发表于 2010-5-18 13:56:42 | 显示全部楼层
和OS有关系吗?
发表于 2012-3-7 09:18:45 | 显示全部楼层
我今天也遇到了同样地问题  有解决办法吗
发表于 2012-6-25 17:07:49 | 显示全部楼层
同问
发表于 2012-6-26 19:29:08 | 显示全部楼层
rubekid 发表于 2012-6-25 17:07
同问

就是不要使用中文,或者在上传的时候用 iconv 转码。

本版积分规则