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

      

  • 相关阅读:
    JSON文件和Json对象
    如何判断一个数为几进制
    热更新
    UIPageView
    quick-cocos2d中自定义按钮(BUTTON)
    lua与oc交互
    Test1
    Visual Studio 附加到进程调试
    C# 判断一个单链表是否有环及环长和环的入口点
    Asp.Net Forms获取UEeditor内容
  • 原文地址:https://www.cnblogs.com/ligaofeng/p/11280001.html
Copyright © 2011-2022 走看看