Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在上载带有拉丁字符(如á;)的文件é&#xóú;和ñ;内码点火器_Php_File_Codeigniter_Upload - Fatal编程技术网

Php 正在上载带有拉丁字符(如á;)的文件é&#xóú;和ñ;内码点火器

Php 正在上载带有拉丁字符(如á;)的文件é&#xóú;和ñ;内码点火器,php,file,codeigniter,upload,Php,File,Codeigniter,Upload,您好,我在CodeIgniter中上传文件时遇到问题,文件带有拉丁字符,当我上传文件时,我回显的名称正确显示,但在我上传文件的文件夹中,名称更改,例如,我有以下文件: "Tour al Volcán del Totumo y a los Manglares.docx" 当我回显名称时,它显示为这样,但在存储文件的文件夹中显示为: "Tour al Volcán del Totumo y a los Manglares.docx" 我到处都找过了,还没能解决这个问题,我还做了一些配置,比如u

您好,我在CodeIgniter中上传文件时遇到问题,文件带有拉丁字符,当我上传文件时,我回显的名称正确显示,但在我上传文件的文件夹中,名称更改,例如,我有以下文件:

"Tour al Volcán del Totumo y a los Manglares.docx"
当我回显名称时,它显示为这样,但在存储文件的文件夹中显示为:

"Tour al Volcán del Totumo y a los Manglares.docx"

我到处都找过了,还没能解决这个问题,我还做了一些配置,比如utf-8字符集等等。

文件夹中的文件也以特定的字符编码显示。哪种编码取决于操作系统

根据操作系统的不同,可能存在多个bug

在linux上:东西存储为UTF-8,但是无论您使用什么来查看文件夹(GUI、终端、sftp客户端、ftp客户端等),都会被设置为默认值,类似于拉丁语-1/ISO-8559-1,并错误地显示,即使文件存储正确

在Mac上:文件在应用程序中以某种方式被双UTF-8编码。这意味着文件名已经在UTF-8中,并且您正在对字符串再次调用utf8_encode(这很糟糕!)

在windows上:PHP仅支持windows上的ANSI文件系统api。实际上,如果不使用COM,就无法使用unicode文件名存储文件,因为输入字符串始终被视为CP-1252,并转换为UTF-8。如果您使用的字符都存在于CP-1252中,则可以使用iconv或mb_convert_编码将UTF-8输入转换为CP-1252


更多信息:(我的博客)

你在哪里进行了这些配置?在Codeigniter的配置文件中,我添加了$config['charset']='UTF-8';还有什么我需要做的吗?是的,请看一些一般性的建议(当然还有下面埃弗特的精彩总结)