c#中使用ZipFile.Extract解压压缩包的时候,会出现中文文件名乱码的情况,原因是zipfile 会将所有文件名用 CP437 来编码,这就导致了中文乱码

 using (var zip = ZipFile.Read(fileToUnzip)){foreach (var e in zip){if (!string.IsNullOrEmpty(password))e.ExtractWithPassword(savePath, ExtractExistingFileAction.OverwriteSilently, password);elsee.Extract(savePath, ExtractExistingFileAction.OverwriteSilently);}}

我们可以将解压之后的文件名重命名

var allFiles = GetAllFiles(savePath);
foreach (string txtFile in allFiles)
{var name = txtFile.Replace(savePath, "");byte[] buffer = Encoding.GetEncoding("CP437").GetBytes(name);string str = "";str = System.Text.Encoding.Default.GetString(buffer);str = savePath + str;
}

str就是最后我们需要的完整路径

c# ZipFile.Extract解压后,文件名中文乱码相关推荐

  1. python extractall函数_python zipfile extract 解压 中文文件名[图]

    python zipfile extract 解压 中文文件名[图] 08-01栏目:技术 TAG:extractall extractall Python zipfile模块官网 copyright ...

  2. ubuntu下rar文件解压后文件名乱码的解决方案

    在linux解压rar文件,通常使用的命令是 rar e a.rar 但是由于编码的缘故,在windows下打包的的中文文件,解压后时候乱码,提示为无效的编码格式,由于windows是gbk的编码格式 ...

  3. python打包出现乱码_python解压zip包中文乱码解决方法

    乱码得原因: 由于ZipFile模块导出遇到中文解码不对,windows上会出现,linux是否会出现不知道没测试过. 解决方式: 1. 搞个文件名引射表(不太方便,少量文件夹套用时候还可以) 2. ...

  4. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)

    java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...

  5. MAC 解压文件,中文乱码

    MAC 解压文件,中文乱码 ditto -V -x -k --sequesterRsrc --rsrc xxxx.zip DESTINATIONDIRECTORY

  6. ZIP文件解压后文件名乱码解决办法

    在windows下创建的zip包在linux下解压缩后文件名出现乱码,有人说unzip有个-O选项可以制定编码,但我的系统上不行,没有这个选项.最终是用java的jar解压,然后在用convmv更改编 ...

  7. Android端解压ZIP文件中文乱码的问题

    吐槽 为解决这个问题,在网上徘徊了数小时,被那些盲目搬砖的博主坑死,明明不可行的方案为什么还要搬到自己的口袋呢?这些人真害人不浅,浪费彼此时间!!!吐槽到此为止.上代码: 正文 首先呢,实现此功能用到 ...

  8. 解压后java文字乱码_怎么解决java解压zip包出现乱码

    怎么解决java解压zip包出现乱码 发布时间:2020-06-23 09:02:42 来源:亿速云 阅读:107 作者:Leah 怎么解决java解压zip包出现乱码?相信很多没有经验的人对此束手无 ...

  9. python zipfile extract 解压 中文文件名

    python zipfile模块官网 正常使用: 解压缩: ZipFile.extract(member,path = None,pwd = None ) 参数 解释 members zipfile ...

最新文章

  1. 厉害了!他是Facebook 开国元老,30 分钟解决 Instagram 服务器挂机
  2. sap 教学视频网址
  3. Linux centos 6.7 设置主机名
  4. MySQL主从复制,读写分离配置
  5. Python学习练习:批量移动文件
  6. Python核心编程第二版 第十三章课后答案
  7. java保护访问,Java中的受保护的访问修饰符
  8. jquery的DOM节点操作(复制元素节点)
  9. 深入理解成分句法分析中的Dynamic Oracle
  10. conda - 创建虚拟环境并配置tensorflow-gpu
  11. WinForm上显示gif动画
  12. modbus功能码04实例_20种PLC元件编号和Modbus编号地址对应表
  13. 删除操作,提示“无法读取源文件或磁盘”,解决办法!
  14. win10 安装redis 解压版
  15. 软件license授权加、解密,软件注册工具(2)
  16. 【I.MX6ULL】6ull 加载 linux 驱动模块失败
  17. 基于杂化材料银-氨基硅烷氧化石墨烯的化学战剂的电化学传感
  18. iOS10 适配汇总
  19. 深入Golang Runtime之Golang GC的过去,当前与未来
  20. 031--python--打印机票页面

热门文章

  1. GE核磁共振常见术语
  2. python本地安装pip命令的终极教程
  3. 解读!《国家职业教育改革实施方案》要点来啦!
  4. 大学谷歌镜像_Google表示您不再需要大学
  5. 浙江省 教师资格证 岗前培训考试 浙江高培中心报名系统
  6. 别让STAR原则的简历毁了你的前途!
  7. 304钢好还是316钢的区别
  8. 篮球数据API接口 - 【篮球文字直播】API调用示例代码
  9. 布尔 (boolean) 型变量只能取两个值,True 和 False。当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False。
  10. Matlab 迭代法计算灰值图像的level