91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何解決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

章丘市| 襄汾县| 建阳市| 滦平县| 灵璧县| 孝义市| 云龙县| 顺昌县| 桃园县| 咸丰县| 丰镇市| 武鸣县| 靖州| 汝州市| 台东市| 固镇县| 宾阳县| 纳雍县| 玛沁县| 历史| 涡阳县| 巴南区| 镇宁| 交口县| 北票市| 永安市| 石柱| 大理市| 余庆县| 临武县| 东乌珠穆沁旗| 平阴县| 贵德县| 铜陵市| 沽源县| 阳朔县| 金秀| 嘉定区| 麻城市| 霸州市| 商城县|