Apache2 上载文件时无法设置正确的字符集

Apache2 上载文件时无法设置正确的字符集,apache2,php,postgresql,upload,Apache2,Php,Postgresql,Upload,请耐心检查这个问题 我编写了一些用于上传图像的简单PHP代码 下面是代码(片段) 这似乎是堆栈溢出问题,与ServerFault无关。然而,你应该看看这篇文章: 对于UTF-8中的命名文件: 对于以UTF-8格式写入文件: 事实证明,我并没有什么都试过 多亏了我找到了解决办法 这与PHP以及“PHP文件系统函数只能处理系统代码页中的字符”有关 所以我使用了iconv函数 我这样修改了密码 move_uploaded_file($_FILES["file"]["tmp_name"],"uploa

请耐心检查这个问题

我编写了一些用于上传图像的简单PHP代码

下面是代码(片段)


这似乎是堆栈溢出问题,与ServerFault无关。然而,你应该看看这篇文章:

对于UTF-8中的命名文件:

对于以UTF-8格式写入文件:


事实证明,我并没有什么都试过

多亏了我找到了解决办法

这与PHP以及“PHP文件系统函数只能处理系统代码页中的字符”有关

所以我使用了
iconv
函数

我这样修改了密码

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . iconv('UTF-8', 'Windows-1253',$_FILES["file"]["name"]));

对于使用日语的应用程序,代码页为cp932 这可以通过在命令行中使用
chcp
命令来确认

示例代码

$fullPath = $uploadFolderPath."\\".iconv("utf-8", "cp932", $fileName);
move_uploaded_file($this->request->data["file_name"]['tmp_name'], $fullPath);
$fullPath = $uploadFolderPath."\\".iconv("utf-8", "cp932", $fileName);
move_uploaded_file($this->request->data["file_name"]['tmp_name'], $fullPath);