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

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è)
吉林省| 秭归县| 临西县| 辽阳县| 潍坊市| 陆丰市| 县级市| 镇平县| 富宁县| 仁化县| 宁波市| 城步| 米易县| 泰和县| 子洲县| 莒南县| 印江| 望江县| 雅安市| 定兴县| 宁乡县| 裕民县| 启东市| 甘洛县| 曲阳县| 如皋市| 嘉善县| 揭西县| 曲松县| 新平| 沙雅县| 本溪| 文水县| 通州市| 彰化县| 天峻县| 开远市| 勐海县| 驻马店市| 徐汇区| 虎林市|