zoukankan      html  css  js  c++  java
  • 解决windows中打包的zip在linux中解压文件名乱码的问题

    zip压缩包中的文件名编码跟随系统设定,但zip文件中不会记录文件名编码,在windows中打包zip,放到linux中解压时,解压程序并不会自动转换文件名编码,因此会出现文件名乱码。解决这个问题的方法是让解压程序保留原始文件名,解压完毕后再转换编码。

    我使用7z作为解压程序,因为7z对超过2GB的压缩包有很好的支持,而tar、unzip等都不支持超过2GB的文件。安装7z:

    $ sudo apt-get install p7zip-full

    然后设置系统编码:

    $ export LANG=C

    解压zip文件:

    $ 7za x /path/to/zip

    解压之后在gui文件管理器中可能会看到文件名后面出现(invalid encoding)的后缀,不用管它,使用ls命令看到的文件名是没有那个后缀的。

    然后使用convmv转换编码。安装convmv:

    $ sudo apt-get install convmv

    convmv支持的部分参数如下:

     -f  源编码

     -f  目标编码

     --notest  convmv默认只会显示文件名转换后的结果而不会实际进行转换。使用这个参数使convmv对文件名进行实际的编码转换。

     --list  列出convmv支持的所有编码

     -r  递归转换所有子目录的文件名编码

    转换:

    $ convmv -f cp936 -t utf8 --notest /path/to/file

    cp936是gbk编码在windows里的别称。

  • 相关阅读:
    2.3、css颜色表示法
    2.2、css文本设置
    2.1、css基本语法及页面引用
    1.10、html内嵌框架
    1.9、html表单
    1.8、html表格
    1.7、html列表
    1.6、html链接
    1.5、html图像、绝对路径和相对路径
    1.4、html块、含样式的标签
  • 原文地址:https://www.cnblogs.com/plodsoft/p/5984436.html
Copyright © 2011-2022 走看看