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

這期內(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ǎ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)整合營銷推廣,成都外貿(mào)網(wǎng)站制作,孝感網(wǎng)站建設(shè)費(fèi)用合理。

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

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

方法一:猜測一下,也許我的系統(tǒng)在創(chuàng)建中文文件的時(shí)候會(huì)亂碼,于是我將代碼改寫了一下:

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

結(jié)果創(chuàng)建成功,沒有亂碼。。。也就是說不是系統(tǒng)問題。

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

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/測試數(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)簽中間加入

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

從而使編碼保持統(tǒng)一,也就不需要再轉(zhuǎn)碼了

結(jié)論

  • 使用iconv函數(shù)可以解決上傳中文文件名亂碼的問題,實(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)行業(yè)資訊頻道。

文章標(biāo)題:如何解決php上傳中文文件文件名亂碼的問題
當(dāng)前路徑:http://bm7419.com/article36/psdhsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制網(wǎng)站、App設(shè)計(jì)、網(wǎng)站建設(shè)定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)