C# ZipFile把汉字弄乱了

C# ZipFile把汉字弄乱了,c#,asp.net,C#,Asp.net,我正在使用一个在C#/Asp.Net中执行下载的项目,文件名中可能包含中文字符。下载单个文件时,中文文件名会正确显示。但是,在一个ZipFile中下载多个文件时,文件夹中的文件将显示为??或。如何使ZipFile保持文件名的非ASCII字符不变 以下是多文件下载代码: using (ZipFile zip = new ZipFile()) { // fileList is of type List<string>

我正在使用一个在C#/Asp.Net中执行下载的项目,文件名中可能包含中文字符。下载单个文件时,中文文件名会正确显示。但是,在一个
ZipFile
中下载多个文件时,文件夹中的文件将显示为
??
。如何使
ZipFile
保持文件名的非ASCII字符不变

以下是多文件下载代码:

using (ZipFile zip = new ZipFile())
{
       // fileList is of type List<string>                                            
       zip.AddFiles(fileList, "files");

       Response.Clear();
       Response.ClearHeaders();
       Response.ContentType = "application/zip";
       Response.AppendHeader("content-disposition", "filename=file.zip");
       zip.Save(Response.OutputStream);
       Response.End();
  }
试试这个:

using (ZipFile zip = new ZipFile())
{
     zip.ProvisionalAlternateEncoding = System.Text.Encoding.UTF8;
     zip.AddFiles(fileList, "files");

这是因为DotNetZip默认使用IBM437(编码),所以您应该设置适当的编码,比如Encoding.UTF8。

我认为这
编码中有错误。UTF8
,对吗?我在这
zip.temporationalAlternativeEncoding=System.Text.Encoding.UTF8,那么现在一切都正常了。谢谢,兄弟!
using (ZipFile zip = new ZipFile())
{
     zip.ProvisionalAlternateEncoding = System.Text.Encoding.UTF8;
     zip.AddFiles(fileList, "files");