[英]POST files uploading - multipart/form-data + UTF bug in PHP?
[英]Uploading files via PHP form, UTF-encoding error of filename
除了當我上傳文件並給它自己的名字(通過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?
對於其他人,這篇文章可能有所幫助: 如何處理無效UTF-8字符的用戶輸入?
已知PHP文件系統函數會破壞非ASCII文件名。
我建議你utf8_[en/de]code
/轉換所有非ASCII字符,或者,如果不可能,嘗試utf8_[en/de]code
。
另請參見如何處理無效UTF-8字符的用戶輸入? 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.