這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何解決php上傳中文文件文件名亂碼的問題,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在孝感等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需策劃設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站制作,孝感網(wǎng)站建設(shè)費(fèi)用合理。
php上傳中文文件文件名亂碼的解決方法:在html文件的head標(biāo)簽中間加入相關(guān)語句,使編碼保持統(tǒng)一,代碼為【
結(jié)果創(chuàng)建成功,沒有亂碼。。。也就是說不是系統(tǒng)問題。
想一下,我的php文件本身是utf8編碼的,那么
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/測(cè)試數(shù)據(jù).txt");這個(gè)語句肯定使用的是utf8編碼,那么之前上傳的文件名肯定就不是utf8編碼了,那么以下的語句肯定是錯(cuò)誤的,因?yàn)樵醋址旧砭筒皇莡tf8編碼的:
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"]));問題解決,不再亂碼
方法二:實(shí)際上還有一種解決辦法,就是在html文件的head標(biāo)簽中間加入
從而使編碼保持統(tǒng)一,也就不需要再轉(zhuǎn)碼了
結(jié)論
使用iconv函數(shù)可以解決上傳中文文件名亂碼的問題,實(shí)際上iconv能解決各種各樣的由于編碼不統(tǒng)一造成的亂碼問題。
使用iconv函數(shù)請(qǐng)先檢查源字符串的編碼,除非你已經(jīng)確定了源字符串的編碼。
盡量保證所有的代碼的編碼一致,萬不得已才使用iconv函數(shù)。
吐槽一下,盡量不使用中文文件名作為服務(wù)器上保存的文件名,請(qǐng)將文件名轉(zhuǎn)化成自己的文件名(即使是英文文件名也請(qǐng)轉(zhuǎn)化一下)。
上述就是小編為大家分享的如何解決php上傳中文文件文件名亂碼的問題了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:如何解決php上傳中文文件文件名亂碼的問題
瀏覽地址:http://weahome.cn/article/psdhsg.html