成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

phpziparchive中文亂碼的解決方法

小編給大家分享一下php ziparchive中文亂碼的解決方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站是一家專業(yè)提供徐州企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都做網(wǎng)站H5建站、小程序制作等業(yè)務(wù)。10年已為徐州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

php ziparchive中文亂碼的解決辦法:首先打開壓縮包將內(nèi)部文件名及目錄進(jìn)行轉(zhuǎn)碼;然后在轉(zhuǎn)碼后關(guān)閉壓縮包并重新打開解壓即可。

本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版,DELL G3電腦

解決php使用ZipArchive解壓時中文亂碼問題

使用php自帶的ZipArchive來解壓帶中文文件名壓縮包時會造成亂碼,現(xiàn)象如下:

原結(jié)構(gòu):

php ziparchive中文亂碼的解決方法

解壓代碼:
$zip = new \ZipArchive();
$res = $zip->open('./錢學(xué)森班.zip');
if ($res !== true){    
throw new \Exception('打開壓縮包失敗');
}$zip->extractTo('./cache');
$zip->close();
解壓后:

php ziparchive中文亂碼的解決方法

原因

默認(rèn)windows,mac打壓縮包時編碼為簡體中文,解壓時未作文件轉(zhuǎn)化導(dǎo)致解壓結(jié)果與預(yù)期不符

解決方法

打開壓縮包后先將內(nèi)部文件名及目錄進(jìn)行轉(zhuǎn)碼,轉(zhuǎn)碼后需關(guān)閉壓縮包并重新打開解壓

實(shí)現(xiàn)如下:

$zipName = './錢學(xué)森班.zip';
$zip = new \ZipArchive();
$res = $zip->open($zipName);
if ($res !== true){
    throw new \Exception('打開壓縮包失敗');
}

// 加入此段↓
$fileNum = $zip->numFiles;
for ($i = 0; $i < $fileNum; $i++) {
    $statInfo = $zip->statIndex($i, ZipArchive::FL_ENC_RAW);
    $zip->renameIndex($i, iconv('GBK', 'utf-8//IGNORE', $statInfo['name']));
}
$zip->close();
$zip->open($zipName);
// 截至↑

$zip->extractTo($extractTo);
$zip->close();

注意事項(xiàng)

  • 轉(zhuǎn)碼后因?yàn)樾薷牧嗽瓑嚎s包文件,所以不可重復(fù)轉(zhuǎn)碼,若不想對原文件產(chǎn)生影響需先復(fù)制(php-zip擴(kuò)展是自己讀文件流,不需要復(fù)制)

  • 轉(zhuǎn)換前使用mb_detect_encoding進(jìn)行編碼判斷依然是返回UTF-8

看完了這篇文章,相信你對“php ziparchive中文亂碼的解決方法”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站題目:phpziparchive中文亂碼的解決方法
新聞來源:http://jinyejixie.com/article4/jjidoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站維護(hù)標(biāo)簽優(yōu)化、網(wǎng)站制作做網(wǎng)站、服務(wù)器托管

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
习水县| 襄汾县| 衡山县| 无为县| 石城县| 满洲里市| 峡江县| 阜宁县| 宁河县| 攀枝花市| 成都市| 宝山区| 临城县| 双牌县| 和林格尔县| 准格尔旗| 元氏县| 友谊县| 阿克苏市| 高青县| 定安县| 藁城市| 调兵山市| 达州市| 合川市| 和静县| 唐山市| 突泉县| 奉贤区| 正蓝旗| 白河县| 札达县| 陆川县| 于都县| 临汾市| 柏乡县| 合山市| 清丰县| 克东县| 栾城县| 乐业县|