問題說明:
在win下:
在進行php檔案上傳的時候,儲存檔案為中文時,亂碼。
linux下卻正常
查閱資料發現:
由於系統是gb2312作為檔名編碼,所以utf-8的php檔案生成的中文名肯定亂碼。(win)所以進行編碼轉變
move_uploaded_file($_files["file"]["tmp_name"], "upload/" . iconv("utf-8","gb2312",$_files["file"]["name"]));
1.使用iconv函式可以解決上傳中文檔名亂碼的問題,實際上iconv能解決各種各樣的由於編碼不統一造成的亂碼問題。一種檢查編碼的方法:2.使用iconv函式請先檢查源字串的編碼,除非你已經確定了源字串的編碼。
3.盡量保證所有的**的編碼一致,萬不得已才使用iconv函式。
$e=mb_detect_encoding($_files["file"]["name"], array("utf-8","gbk","gb2312"));
echo $e;
//被返回: utf-8,從而確認當前編碼為utf-8,然後進行編碼轉換即可
php 上傳亂碼 PHP上傳檔案中文亂碼解決方法!
上傳表單 檔名 php if files file type video mp4 if files file error 0 echo 錯誤 files file error else echo 上傳檔名 files file name echo 檔案型別 files file type echo ...
PHP解決中文亂碼
在php中,中文亂碼非常頭疼,很麻煩,所以根據在程式設計的經驗,總結以下方法 以utf 8為例 1.php中在頭部header設定編碼方式 hea content type text html charset utf 8 2.php中用iconv轉碼 echo iconv gb2312 utf 8 ...
linux php mysql 中文亂碼解決方案
本公司mysql資料庫預設的編碼是utf8,如果這種編碼與你的php網頁不一致,可能就會造成mysql亂碼.mysql中建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成mysql亂碼.mysql建立表時新增欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成my...