欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

dotnetcore下解压zip文件,解决中文文件名乱码问题

程序员文章站 2022-03-06 20:52:40
(迄今为止网上那些说的用Encoding.Default解决中文文件名乱码的都不能真正解决问题!) 1、在程序开始处 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 2、设置编码为GBK ......

(迄今为止网上那些说的用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);
            }
        }
    }