在linux与windows平台间交换压缩包文件,如果文件名中含有中文,有时候就会遇到乱码问题,给平台间的文件交换带来麻烦。今天仔细研究了一下,总结下面一些经验,供大家分享

 

1、7zip和rar(我用的是3.50,好像rar的旧版本不行)会对文件名编码进行转换,内部文件名编码使用unicode,所以使用这两种格式在linux和windows平台间交换不会有乱码问题,其他格式(比如tar.gz, tar.bz2)似乎不进行转换,所以不适合平台间交换。但鉴于linux的自由精神,不推荐使用商业软件rar,而推荐自由的7zip。但是,我发现用 ubuntu中(我的是Edge)file-roller处理7zip文件还是会存在问题,而用命令行就没有问题,所以推荐大家用命令行的7zip。

 

2、解压含有中文文件名的zip文件

 

如果收到windows压缩的含有中文文件名的zip文件,在linux下解压就会乱码,找了一圈,似乎没有软件能够解决这个问题,于是乎,就自己用python编了一个脚本,该脚本假设你已经安装7zip,并且locale为UTF-8用rar解决问题。