alex.chou 发表于 2014-12-22 23:58:57

CI文件上传 中文文件名上传乱码

RT, 我在坛子里搜索有人说用iconv转码那怎么转呢,这个文件上传类不是直接初始化配置之后就用$this->upload->do_upload()直接就上传了么,根本就没有给机会转码文件名的哇{:soso_e110:}

Closer 发表于 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 還有同名偵測
你這樣就是兩個地方要改


玩的暗黑还是风暴英雄?

Hex 发表于 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编码

Hex 发表于 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+ , 都没换过

Hex 发表于 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:}好吧 我们说的不是一个东西
我说的是文件名
页: [1] 2
查看完整版本: CI文件上传 中文文件名上传乱码