首頁  >  文章  >  運維  >  linux下zip檔解壓縮亂碼該如何解決?

linux下zip檔解壓縮亂碼該如何解決?

零下一度
零下一度原創
2017-07-18 14:02:102184瀏覽

由於zip格式中並沒有指定編碼格式,Windows下產生的zip檔案中的編碼是GBK/GB2312等,因此,導致這些zip檔在Linux下解壓縮時出現亂碼問題,因為Linux下的預設編碼是UTF8。

目前網路上流傳一種unzip -O cp936的方法,但有些unzip是沒有-O這個選項的。

我使用的版本unzip 6.0 debian modified 版本有這個選項

因為編碼問題,zip檔案中的中文檔案在linux下解壓縮會出現亂碼

#如果你使用archlinux那麼使用AUR安裝unzip-natspec就可以解決這個問題

這個時候,使用unzip xxx.zip就可以正確解壓縮檔案

然後在file-roller歸檔管理器中操作,中文名稱依然是亂碼,據說是因為file-roller優先使用p7zip

刪除p7zip後問題解決

然而我還想同時能夠使用p7zip軟體包,誰知道這個問題如何解決?

從這裡下載程式碼研究,發現這樣的邏輯

    /* give priority to 7z, unzip and zip that supports ZIP files better. */if ((strcmp (mime_type, "application/zip") == 0)|| (strcmp (mime_type, "application/x-cbz") == 0))
    {if (_g_program_is_available ("7z", check_command)) {return capabilities;
        }if (!_g_program_is_available ("unzip", check_command)) {
            capabilities |= FR_ARCHIVE_CAN_READ;
        }if (!_g_program_is_available ("zip", check_command)) {
            capabilities |= FR_ARCHIVE_CAN_WRITE;
        }return capabilities;
    }

這裡是寫死的,看起來除了給程式碼打補丁是沒什麼好辦法了

最後的解決辦法,發現AUR中同樣存在類似的軟體包p7zip-natspec

安裝這個包應該就可以完美的解決問題吧,因為我已經使用上面的方法解決了問題,就不試這個了

以上是linux下zip檔解壓縮亂碼該如何解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn