wangxvnan
公牛梵高
2019-07-10 14:28
采纳率: 0%
浏览 532

C#使用SevenZipSharp压缩zip文件文件名乱码

C#使用SevenZipSharp压缩的zip文件(环境windows),在android设备解压中文文件名乱码。

怀疑是windows使用的是GBK编码,而android的底层是linux使用的是utf-8编码。

SevenZipSharp类库压缩文件的时候有没有设置字符编码的方法。

压缩后windows上查看

压缩后windows上查看

android设备查看

android设备查看

源码:

using SevenZip;




string systemPath = System.Web.HttpContext.Current.Server.MapPath("~/bin/");//物理路径
            if (Environment.Is64BitProcess)
            {
                SevenZipCompressor.SetLibraryPath(systemPath + "/x64/7z.dll");
            }
            else
            {
                SevenZipCompressor.SetLibraryPath(systemPath + "/x86/7z.dll");
            }
            //压缩
            var zip = new SevenZipCompressor();
            zip.ArchiveFormat = OutArchiveFormat.Zip;
            zip.CompressionLevel = CompressionLevel.High;
            //请先在c:\doc目录下新建一些中文名和英文名文件做对比
            zip.CompressDirectory(@"c:\doc", @"c:\arch.zip");


下载地址:
百度网盘链接:https://pan.baidu.com/s/1RJ93ANMYVdPu-vE_BrMK0g
提取码:pj95

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy

    换System.IO.Compression.ZipArchive
    微软官方的库
    https://blog.csdn.net/zhulongxi/article/details/51819431

    点赞 评论
  • qq_43191842
    qq_43191842 2019-07-11 11:40

    打开文件,另存为改变编码格式就好了

    点赞 评论

相关推荐