(迄今為止網上那些說的用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);
}
}
}
