2016年8月30日 星期二

[C#] 解壓縮zip檔 出現編碼問題


日前使用DotNetZip library作為壓縮與解壓縮的套件

在一次新專案使用解壓縮時卻頻頻出現亂碼

因此我找了一下可能原因。

第一個 : zip檔內有中文檔名

using (ZipFile zips = new ZipFile(FileUpload.Path, Encoding.Default))


在一開始建立物件時,就決定編碼格式。
 
第二個:檔案內文字出現亂碼

// 存取xml
using (MemoryStream outputStream = new MemoryStream())
{
    entity.Extract(outputStream);
    outputStream.Position = 0;
    var myStr = new StreamReader(outputStream, System.Text.Encoding.UTF8).ReadToEnd();
    data.Add(entity.FileName, myStr);
 }
                

使用stream讀取資料時,記得設定編碼格式。
 
因此會有兩個地方要調整唷~
 
 

沒有留言:

張貼留言