一切都很好,除了当我上传一个文件,并给它自己的名字(通过一个html表单的文本字段)"Åäöô - KARL".
我做了一个自定义的fileupload/handler/cms为我的网站和一切工作,除了当文件上传。
当我通过ftp程序直接查看文件上传目录时,文件名突然变成了"Åäöô- KARL"。
- 我运行html5与
<meta charset="UTF-8" />
在每个页面的开始 - 我编码时编写代码与UTF-8没有BOM
我试过iconv()
,有什么我错过了吗?我怀疑它是在html表单$_POST['name_of_file']
和当我运行命令
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_POST['name_of_file'])
进度:我实际上做了一个"utf8_decode",现在文件被保存为正确的名称,它在我的网站上显示奇怪,所以当我想显示它时,我必须对它进行编码。
无论如何,要绕过必须键入utf8_encode和utf8_decode到处??
对于其他人,这篇文章可能会有所帮助:如何处理无效的UTF-8字符的用户输入?
PHP文件系统函数已知会混淆非ascii文件名。
我建议您剥离/转换所有非ascii字符,或者,如果这是不可能的,尝试utf8_[en/de]code
。
请参见如何处理用户输入的无效UTF-8字符?