zoukankan      html  css  js  c++  java
  • Python

      最近使用zipfile进行解包过程中遇到了很不舒服的问题,解包之后文件名是乱码的。下面进行简单总结:

      首先,乱码肯定是因为解码方式不一样了,zipfile使用的是utf-8cp437这两种编码方式,这里猜测是因为是歪果仁发布的。

      这里其实直接改一下源码里的编码就可以了

      在源码文件里直接调出搜索框搜索"cp437"即可找到

    1             if flags & 0x800:
    2                 # UTF-8 file names extension
    3                 filename = filename.decode('utf-8')
    4             else:
    5                 # Historical ZIP filename encoding
    6                 # filename = filename.decode('cp437')
    7                 filename = filename.decode('gbk')
                if zinfo.flag_bits & 0x800:
                    # UTF-8 filename
                    fname_str = fname.decode("utf-8")
                else:
                    # fname_str = fname.decode("cp437")
                    fname_str = fname.decode("gbk")

      只要改掉这两处就可以正常用了

      启示:

      通常我们使用python写程序时有些东西是网友已经写过的,只需要照搬稍微改一改就可以了,但对于拓展的工具包好像有一种官方的,很正式的感觉,通过这次踩坑,我想不管是谁发布的东西,都不是适合每一个人的,我们应该变通的使用,毕竟任何语言和工具都是为了方便开发和提高效率才出现的,不能死板的按照旧有思路来。

      

  • 相关阅读:
    浅谈软件开发项目的质量控制
    分布式系统稳定性模式
    正确使用 Volatile 变量
    我和 OI 的一些故事
    NOIP2020 退役记
    博弈论基础入门
    [HAOI2008]硬币购物(容斥/背包DP)
    [CF] 1307F Cow and Vacation(思维/贪心)
    [noi.ac 模拟赛8] c(容斥/DP)
    [noi.ac 模拟赛9] A.出征准备(同余最短路)
  • 原文地址:https://www.cnblogs.com/ligaofeng/p/11280001.html
Copyright © 2011-2022 走看看