通过PHP表单上传文件,文件名的UTF编码错误
除了当我上传文件并给它自己的名字(通过html格式的文本字段)“???? – KARL”时,一切都工作正常.
我为我的网站制作了一个自定义的fileupload / handler / cms,除了文件上传时,一切正常. 当我通过我的ftp程序直接查看文件上传目录时,文件名突然“?…?¤???’-KARL”. >我用< meta charset =“UTF-8”/>运行html5在每一页的开头 我试过iconv(),有什么我想念的吗?我怀疑它是在html格式$_POST [‘name_of_file’]和我运行命令之间 move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_POST['name_of_file']) 进展:我实际上做了一个“utf8_decode”,现在文件被保存为正确的名称,虽然现在在我的网站上显示很奇怪,所以当我想显示它时我必须编码它. 无论如何必须到处输入utf8_encode和utf8_decode? 对于其他人,这篇文章可能有所帮助:How to handle user input of invalid UTF-8 characters? 解决方法
已知PHP文件系统函数会破坏非ASCII文件名.
我建议你去掉/转换所有非ASCII字符,或者,如果不可能,尝试utf8_ [en / de]代码. 另见How to handle user input of invalid UTF-8 characters?. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |