windows与linux间压缩包文件名乱码

ZephyrXT 发布于 阅读:52

乱码根源:

Windows下的编码多为gbk,gb2312,而在Linux下多为UTF-8 ,而转码分为对文件名的转码和文件内容的转码。

—————— 解决windows下打包, Linux打开压缩包乱码 ——————

Centos下:

安装7z 参考:http://blog.zephyrxt.net/post-130.html

安装convmv :

yum install convmv


运行:

LANG=C 7za x your-zip-file.zip
convmv -f GBK -t utf8 --notest -r .
第一条命令用于解压缩,而LANG=C表示以US-ASCII这样的编码输出文件名,如果没有这个语言设置,它同样会输出乱码,只不过是UTF8格式的乱码(convmv会忽略这样的乱码)。
第二条命令是将GBK编码的文件名转化为UTF8编码,-r表示递归访问目录,即对当前目录中所有文件进行转换


或者直接使用一条命令:

unzip -O CP936 xxx.zip (用GBK, GB18030也可以),并非所有unzip版本都支持该命令参数


文件内容转码:

使用命令iconv对文件内容编码进行转换。 
例如我有一个文件"y05文档.txt"在windows下打开正常,而在linux下打开则会乱码,其解决办法为在终端输入:  
iconv -f gbk -t utf-8 y05文档.txt > y05文档.txt.utf8  
之后再打开"y05文档.txt.utf8"这个文件,该文见的乱码问题就解决了


———————— linux压缩包 window下打开乱码 ——————

linux下:7za a -mx=0 -t7z "test" "test2" 不加密打包

windows下:安装使用第三方解压缩工具:http://www.zipeg.com/


参考:

linux下文件解压乱码?
https://bbs.zephyrxt.com/thread-17626-1-1.html

Linux 学习解决归档管理器打开rar和zip中文文件名乱码问题
https://bbs.zephyrxt.com/thread-17627-1-1.html

Linux各种乱码的解决办法[完善中]
https://bbs.zephyrxt.com/thread-17628-1-1.html

linux解压unzip中文乱码的解决办法
https://bbs.zephyrxt.com/thread-17629-1-1.html

linux ubuntu10.10 文件解压之后乱码问题汇总
https://bbs.zephyrxt.com/thread-17630-1-1.html

[2012.10.04]Linux压缩包简体中文乱码终极解决方案

https://bbs.zephyrxt.com/thread-17631-1-1.html