新聞中心
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何解決php上傳中文文件文件名亂碼的問題,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
php上傳中文文件文件名亂碼的解決方法:在html文件的head標(biāo)簽中間加入相關(guān)語句,使編碼保持統(tǒng)一,代碼為【
結(jié)果創(chuàng)建成功,沒有亂碼。。。也就是說不是系統(tǒng)問題。
想一下,我的php文件本身是utf8編碼的,那么
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/測試數(shù)據(jù).txt");這個語句肯定使用的是utf8編碼,那么之前上傳的文件名肯定就不是utf8編碼了,那么以下的語句肯定是錯誤的,因為源字符串本身就不是utf8編碼的:
iconv("UTF-8","gbk//TRANSLIT",$_FILES["file"]["name"]);使用函數(shù)檢查源字符串的編碼:
$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’,’gb2312’));2 echo $e;結(jié)果是CP936,也就是源字符串編碼是GBK。
試一下
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . iconv("gbk","UTF-8",$_FILES["file"]["name"]));問題解決,不再亂碼
方法二:實際上還有一種解決辦法,就是在html文件的head標(biāo)簽中間加入
從而使編碼保持統(tǒng)一,也就不需要再轉(zhuǎn)碼了
結(jié)論
使用iconv函數(shù)可以解決上傳中文文件名亂碼的問題,實際上iconv能解決各種各樣的由于編碼不統(tǒng)一造成的亂碼問題。
使用iconv函數(shù)請先檢查源字符串的編碼,除非你已經(jīng)確定了源字符串的編碼。
盡量保證所有的代碼的編碼一致,萬不得已才使用iconv函數(shù)。
吐槽一下,盡量不使用中文文件名作為服務(wù)器上保存的文件名,請將文件名轉(zhuǎn)化成自己的文件名(即使是英文文件名也請轉(zhuǎn)化一下)。
上述就是小編為大家分享的如何解決php上傳中文文件文件名亂碼的問題了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
當(dāng)前題目:如何解決php上傳中文文件文件名亂碼的問題-創(chuàng)新互聯(lián)
分享地址:http://ef60e0e.cn/article/cohjdo.html