西宁专业制作网站,江门模板建站哪家好,wordpress问题解决方法,局网站建设方案wordzipfile文件名乱码问题接到一个解压zip文件的任务。在几百G的文件里面找到zip文件#xff0c;并解压到当前目录。这个任务看似很简单#xff0c;但是全都是坑的。被坑的第一点#xff0c;文件名乱码。搜索博客里面的教程#xff0c;一般有两种方法。1、修改源码#xff0c…zipfile文件名乱码问题接到一个解压zip文件的任务。在几百G的文件里面找到zip文件并解压到当前目录。这个任务看似很简单但是全都是坑的。被坑的第一点文件名乱码。搜索博客里面的教程一般有两种方法。1、修改源码把cp437编码换成gbk。2、decode cp437 再 encode gbk。这两种方案都只能适应一些场景而已因为zip的压缩工具本来就是混乱的。我来说说第一种方案的坑点并非所有的zip文件都是通过flag_bits来控制是utf-8还是别的编码的。例如一个flag_bits标记为非utf-8的文件名你直接修改源码转gbk则很有可能会gbk can not decode error 。第二种方案同样有像似的问题。一个utf-8的文件名因为flag_bits的错误。然后你就无法区分是到底是 decode cp437 还是 utf-8。所以正确的方法是读取flag_bits,decode cp437 或者 utf-8 还原成二进制数据。然后再使用chardet猜测编码如果猜测不出来应该指定utf-8编码、然后再使用gbk。是的这个编码还是要靠猜的。解压文件的另外一个坑点我也不知道为啥压缩文件的路径上有的文件夹的尾部是一个空格。这导致解压后的文件夹。有内容但是打开是看不到文件的。我使用rar工具进行解压。发现工具会把尾部的空格替换成下划线。结果经过这些修改终于这几百G的文件扫描出来的zip可以成功解压。有60G大小。而且文件名都可以还原。没有乱码的情况。