iT邦幫忙

0

C# dotnetzip 中文亂碼問題

  • 分享至 

  • xImage
public static void UnZipFiles(string fileName, string path)
        {
            ReadOptions options = new ReadOptions();
            options.Encoding = Encoding.UTF8;

            using (ZipFile zipList = ZipFile.Read(fileName, options))
            {
                try
                {
                    
                    foreach (ZipEntry zipFile in zipList)
                    {
                        zipFile.Extract("D:\\test\\", ExtractExistingFileAction.OverwriteSilently);
                    }
                    
                }
                catch (Exception e)
                {
                    throw new Exception(string.Format("讀取檔案失敗,原因:{0}", e.Message));
                }
            }

        }

程式碼大致上如上,我從網路上查到是說,改成utf-8解壓縮後就檔案就不會是亂碼了,但問題是結果還是亂碼

System.Exception: '失敗原因讀取檔案失敗,原因:檔案名稱、目錄名稱或磁碟區標籤語法錯誤。'
所以跑出了以上的結果。

想請問說該怎麼解決好。
ps若我使用unicode編碼可以成功下載,但是還是會是亂碼,就比較好看的亂碼= =

看更多先前的討論...收起先前的討論...
試試 Big5
options.Encoding = Encoding.GetEncoding(”big5″)
player iT邦大師 1 級 ‧ 2020-04-24 23:16:46 檢舉
options.Encoding = Encoding.GetEncoding("GB2312");

options.Encoding = Encoding.GetEncoding("GBK");
都試看看
如果你的檔案來自對岸的話
tryit iT邦研究生 4 級 ‧ 2020-04-27 11:54:25 檢舉
好的我試試看,謝謝
tryit iT邦研究生 4 級 ‧ 2020-04-27 13:42:42 檢舉
@fysh711428 他說big5並沒有被支援
tryit iT邦研究生 4 級 ‧ 2020-04-27 13:44:56 檢舉
應該說以上三種寫法都被說not support
kinhp iT邦新手 5 級 ‧ 2021-04-07 17:48:05 檢舉
options.Encoding = Encoding.Default;
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答