中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決php上傳中文文件文件名亂碼的問題

發布時間:2020-07-20 14:35:48 來源:億速云 閱讀:410 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關如何解決php上傳中文文件文件名亂碼的問題,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

php上傳中文文件文件名亂碼的解決方法:在html文件的head標簽中間加入相關語句,使編碼保持統一,代碼為【<meta http-equiv="Content-Type"content="text/html;charset=utf-8】。

php上傳中文文件文件名亂碼的解決方法:

方法一:猜測一下,也許我的系統在創建中文文件的時候會亂碼,于是我將代碼改寫了一下:

move_uploaded_file($_FILES["file"]["tmp_name"], "upload/測試數據.txt");

結果創建成功,沒有亂碼。。。也就是說不是系統問題。

想一下,我的php文件本身是utf8編碼的,那么

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/測試數據.txt");

這個語句肯定使用的是utf8編碼,那么之前上傳的文件名肯定就不是utf8編碼了,那么以下的語句肯定是錯誤的,因為源字符串本身就不是utf8編碼的:

iconv("UTF-8","gbk//TRANSLIT",$_FILES["file"]["name"]);

使用函數檢查源字符串的編碼:

$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’,’gb2312’));2 echo $e;

結果是CP936,也就是源字符串編碼是GBK。

試一下

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

問題解決,不再亂碼

方法二:實際上還有一種解決辦法,就是在html文件的head標簽中間加入

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

從而使編碼保持統一,也就不需要再轉碼了

結論

  • 使用iconv函數可以解決上傳中文文件名亂碼的問題,實際上iconv能解決各種各樣的由于編碼不統一造成的亂碼問題。

  • 使用iconv函數請先檢查源字符串的編碼,除非你已經確定了源字符串的編碼。

  • 盡量保證所有的代碼的編碼一致,萬不得已才使用iconv函數。

  • 吐槽一下,盡量不使用中文文件名作為服務器上保存的文件名,請將文件名轉化成自己的文件名(即使是英文文件名也請轉化一下)。


上述就是小編為大家分享的如何解決php上傳中文文件文件名亂碼的問題了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

红桥区| 桃江县| 白朗县| 满城县| 会泽县| 扎兰屯市| 西宁市| 商水县| 青冈县| 云龙县| 涿州市| 吴江市| 乐至县| 错那县| 乌苏市| 本溪市| 长子县| 太仆寺旗| 永嘉县| 双辽市| 鄂托克旗| 高阳县| 卓尼县| 揭西县| 昆山市| 明星| 江北区| 泗水县| 峨山| 云浮市| 黔南| 大竹县| 苏尼特右旗| 灵台县| 肥西县| 六枝特区| 莱芜市| 雅安市| 襄汾县| 宁津县| 宜章县|