Php CKEditor文件上载错误的文件编码(非UTF-8)

Php CKEditor文件上载错误的文件编码(非UTF-8),php,file-upload,encoding,ckeditor,Php,File Upload,Encoding,Ckeditor,我在WindowsIIS上使用PHP5.6。当创建链接并通过ckeditor上载该链接的文件时,服务器上的文件名不使用特殊字符,如:ĆŽĐ。只有通过ckeditor上传文件时才出现问题。将文本上载到数据库时,编码并没有问题。我如何让ckeditor告诉服务器正确的编码,或者包括我请求的编码,或者我需要做的任何事情来让它工作?这种PHP编码是一场噩梦 我已经用这个解决了它: iconv("utf-8", "cp1250", $_FILES['upload']['name']) 但是,我是否无法告

我在WindowsIIS上使用PHP5.6。当创建链接并通过ckeditor上载该链接的文件时,服务器上的文件名不使用特殊字符,如:ĆŽĐ。只有通过ckeditor上传文件时才出现问题。将文本上载到数据库时,编码并没有问题。我如何让ckeditor告诉服务器正确的编码,或者包括我请求的编码,或者我需要做的任何事情来让它工作?这种PHP编码是一场噩梦

我已经用这个解决了它:

iconv("utf-8", "cp1250", $_FILES['upload']['name'])
但是,我是否无法告诉PHP将所有内容都当作UTF-8处理?我尝试过将php.ini中关于编码和代码页的每一个设置都设置为UTF-8,但没有任何帮助。这看起来确实前后矛盾,而且很挑剔。有没有PHP专家能告诉我解决这个问题的简单方法

以下是上载标题:

POST https://nsdmup-a.hr/cms/news_fileupload.php?CKEditor=fullText&CKEditorFuncNum=1&langCode=en HTTP/1.1
Host: nsdmup-a.hr
Connection: keep-alive
Content-Length: 1069214
Cache-Control: max-age=0
Origin: https://nsdmup-a.hr
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarysc0FA4jsjDe2Z4s8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: https://nsdmup-a.hr/cms/news_add.php?editId=293
Accept-Encoding: gzip, deflate, br
Accept-Language: hr-HR,hr;q=0.9,en-US;q=0.8,en;q=0.7,sr;q=0.6,bs;q=0.5,ja;q=0.4
Cookie: PHPSESSID=45iuc1r017sb75bte57dl0te71

------WebKitFormBoundarysc0FA4jsjDe2Z4s8
Content-Disposition: form-data; name="upload"; filename="511-D-022-2018. dopis ministru - zapšljavanje namještenika2.pdf"
Content-Type: application/pdf
这是他写入磁盘的文件名:
“511-D-022-2018.dopis ministru-zapĹljavanje namjeĹtenika2.pdf”

根据我的经验,在v7.0之前,这是Windows和所有PHP版本的问题

因此,要么继续使用
iconv
函数,要么至少将PHP升级到v7.1()

您还可以创建包含以下内容的帮助器函数:

if (version_compare(phpversion(), '7.1.0', '<') and strtoupper(substr(php_uname('s'), 0, 3)) === 'WIN')
{
    // Windows and PHP 7.0 or less. Use iconv
    return iconv('utf-8', 'cp1250', $filename);
}
else
{
    // Should be all good
    return $filename;
}
if(版本比较(phpversion(),'7.1.0','