Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 上载文件的Unicode名称将被删除_Php_Unicode_Upload_Filenames - Fatal编程技术网

Php 上载文件的Unicode名称将被删除

Php 上载文件的Unicode名称将被删除,php,unicode,upload,filenames,Php,Unicode,Upload,Filenames,我正在上传unicode名称的文件。上传后,我看到一个没有名字的文件,实际上上传文件的unicode名称将被删除。为什么?如何解决这个问题 我使用ftp(php)上传,拉丁字母文件名没有问题 谢谢我想您的文件系统不支持unicode名称 你应该考虑删除Unicode字母,或者用另一种方式编码< /P> 一个廉价的黑客可能是urlencode()这取决于客户机和服务器的具体实现、它们运行的操作系统以及操作系统的配置方式等等 例如,当服务器在Windows上运行时,客户端可能是使用UTF-8的lin

我正在上传unicode名称的文件。上传后,我看到一个没有名字的文件,实际上上传文件的unicode名称将被删除。为什么?如何解决这个问题

我使用ftp(php)上传,拉丁字母文件名没有问题


谢谢

我想您的文件系统不支持unicode名称

你应该考虑删除Unicode字母,或者用另一种方式编码< /P>


一个廉价的黑客可能是
urlencode()

这取决于客户机和服务器的具体实现、它们运行的操作系统以及操作系统的配置方式等等

例如,当服务器在Windows上运行时,客户端可能是使用UTF-8的linux,并且不太可能处理UTF-8文件名,或者客户端可能是Windows,试图将Unicode文件名转换为某些旧式编码,而当服务器在linux上使用UTF-8时,无法处理该文件名


您只需要了解相关因素或找到可以亲自交谈的人,因为在查看案例的所有细节时,排除故障可能会涉及大量的来回操作。

您的服务器文件系统支持unicode名称吗?@MarkBaker,我如何定义我的服务器文件系统是否支持unicode名称?告诉我们您使用的操作系统和文件系统类型可能会帮助我们回答这个问题that@MarkBaker,操作系统是CentOS 5.8,我很快会告诉你文件系统类型。@MarkBaker,他们问我你的意思是我们使用的是什么文件系统类型。我对他们说了什么?我如何定义我的服务器文件系统是否支持unicode名称?几乎任何文件系统都支持unicode名称。Windows的本机文件访问API使用UTF-16,NTFS实际上存储UTF-16数据,而在各种Unix平台上使用的大多数文件系统只存储(几乎)任意字节序列,不管传递到open()中的是什么。使用这样一个文件系统的软件可以配置为存储UTF-8数据(或者其他任何东西,您必须弄清楚系统是如何配置的)。还有一些奇怪的混合体,比如HFS+上的OSX,本地API是基于字节的,但磁盘存储UTF-16。