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

[已解决] CI文件上传 中文文件名上传乱码

[复制链接]
发表于 2014-12-22 23:58:57 | 显示全部楼层 |阅读模式
RT, 我在坛子里搜索  有人说用iconv转码  那怎么转呢,这个文件上传类不是直接初始化配置之后就用$this->upload->do_upload()直接就上传了么,根本就没有给机会转码文件名的哇{:soso_e110:}

发表于 2014-12-23 09:38:59 | 显示全部楼层
非必要就別轉了吧
畢竟 CI 還有同名偵測
你這樣就是兩個地方要改

考慮考慮 Hex 的方法吧
ci 文件上传时,当文件名是中文时,上传文件名变乱码
发表于 2014-12-24 08:12:43 | 显示全部楼层
php文件系统使用的是比较古老的GB2312  而不是通用性更好的utf8

上传类中设置个英文+数字形式的file_name一般就不会乱码
发表于 2014-12-24 08:13:27 | 显示全部楼层
Closer 发表于 2014-12-23 09:38
非必要就別轉了吧
畢竟 CI 還有同名偵測
你這樣就是兩個地方要改

玩的暗黑还是风暴英雄?
发表于 2014-12-25 11:28:52 | 显示全部楼层
一叶扁舟 发表于 2014-12-24 08:12
php文件系统使用的是比较古老的GB2312  而不是通用性更好的utf8

上传类中设置个英文+数字形式的file_name ...

PHP 的文件系统,没有这种东西吧。。。

发表于 2014-12-25 17:08:37 | 显示全部楼层
Hex 发表于 2014-12-25 11:28
PHP 的文件系统,没有这种东西吧。。。

其实就是PHP处理文件相关的……  目前只识别GB2312编码
发表于 2014-12-25 18:32:05 | 显示全部楼层
一叶扁舟 发表于 2014-12-25 17:08
其实就是PHP处理文件相关的……  目前只识别GB2312编码

我认为 PHP 在文件处理相关函数上是无编码的,也就是说和操作系统的文件系统的编码相关。

发表于 2014-12-26 08:27:44 | 显示全部楼层
Hex 发表于 2014-12-25 18:32
我认为 PHP 在文件处理相关函数上是无编码的,也就是说和操作系统的文件系统的编码相关。

...

这个确实有……  以前看韩顺平PHP教程时候就提到这了   PHP文件系统从最开始就用的GB2312,到现在PHP5+ , 都没换过
发表于 2014-12-26 11:14:01 | 显示全部楼层
一叶扁舟 发表于 2014-12-26 08:27
这个确实有……  以前看韩顺平PHP教程时候就提到这了   PHP文件系统从最开始就用的GB2312,到现在PHP5+ , ...

我认为他说的是不对的,PHP 的文件操作函数例如 fopen, fgets 等都是可以安全用于二进制文件的,所以这些函数本身就是不关心编码的。
我们还是应该以 PHP 手册说的为准。

发表于 2014-12-27 08:42:01 | 显示全部楼层
Hex 发表于 2014-12-26 11:14
我认为他说的是不对的,PHP 的文件操作函数例如 fopen, fgets 等都是可以安全用于二进制文件的,所以这些 ...

{:soso_e127:}好吧 我们说的不是一个东西  
我说的是文件名

本版积分规则