(迄今为止网上那些说的用Encoding.Default解决中文文件名乱码的都不能真正解决问题!)
1、在程序开始处
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
2、设置编码为GBK
class Program
{
static void Main(string[] args)
{
// 注册代码页提供器实例
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Uncompress("a.zip", "x");
}
static void Uncompress(string zipFile, string extractPath)
{
// 设置打开的ZIP文件的编码为GBK
using (var zip = ZipFile.Open(zipFile, ZipArchiveMode.Read, Encoding.GetEncoding("GBK")))
{
foreach (var entry in zip.Entries)
{
System.Console.WriteLine(entry.FullName);
}
zip.ExtractToDirectory(extractPath, true);
}
}
}