youzlm 发表于 2009-9-15 23:26:16

ci 文件上传时,当文件名是中文时,上传文件名变乱码

ci 文件上传时,当文件名是中文时,上传到服务器时,文件名变乱码?请问这个要如何处理啊?

Hex 发表于 2009-9-16 00:02:24

服务器如果是 linux,客户端是 windows 肯定不行,因为这两个系统编码不同,需要用 iconv 转换文件名。

Hex 发表于 2009-9-16 10:51:52

要看你客户端是什么编码,你服务器端是什么编码,不能乱转换啊。
不过,我的建议是不要保留中文文件名,这样后患无穷,计算机毕竟是外国人发明的。
你可以转换成其他文件名,把原始名字存到数据库里,下载的时候再动态传输文件数据。

youzlm 发表于 2009-9-16 09:20:08

2# Hex
在CI中要如何更改呢?
我引用上面的贴子中的$this->upload->file_name = iconv("UTF-8","GB2312//IGNORE",$_FILES['files']['name']);
为什么不行?

youzlm 发表于 2009-9-16 11:00:15

4# Hex
这个方法好.谢谢

yinzhili 发表于 2009-9-16 11:10:14

这个倒没有处理过,一般来说不保留中文比较好。因为你在写程序的时候无法预料到你的网站会运行在什么样的服务器上,可能是Linux也可能是Windows,这个你要根据不同情况来区分,转换编码很麻烦的。

tacyuuhon 发表于 2010-5-18 13:56:42

和OS有关系吗?{:3_47:}

AppleLiKing 发表于 2012-3-7 09:18:45

我今天也遇到了同样地问题有解决办法吗

rubekid 发表于 2012-6-25 17:07:49

同问

Hex 发表于 2012-6-26 19:29:08

rubekid 发表于 2012-6-25 17:07 static/image/common/back.gif
同问

就是不要使用中文,或者在上传的时候用 iconv 转码。
页: [1] 2
查看完整版本: ci 文件上传时,当文件名是中文时,上传文件名变乱码