[分享]在linux与windows平台间交换含有中文文件名的压缩包文件

系统字体配置、中文显示和输入法问题
回复
windforest
帖子: 53
注册时间: 2005-12-13 20:56
送出感谢: 0
接收感谢: 0
联系:

[分享]在linux与windows平台间交换含有中文文件名的压缩包文件

#1

帖子 windforest » 2006-12-11 19:42

在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
附件
unzip.gbk.gz
(683 Bytes) 下载 60 次
e2002
帖子: 245
注册时间: 2006-06-07 18:15
送出感谢: 1 次
接收感谢: 2 次

#2

帖子 e2002 » 2006-12-13 23:00

zip 也是这个问题.
所以现在我只创建 7z 的压缩文件了.

完全支持 开放的 7zip!
头像
jfxwc
帖子: 152
注册时间: 2006-10-29 14:06
送出感谢: 0
接收感谢: 0

#3

帖子 jfxwc » 2006-12-15 18:23

呵呵,我的 rar 是正版的,所以不要浪费,在 linux 下我也是用 rar ,不存在版权问题。

原以为 zip 就可以解决这个问题。
食古不化
帖子: 21
注册时间: 2005-10-30 21:24
送出感谢: 0
接收感谢: 0

#4

帖子 食古不化 » 2007-11-06 18:57

感谢楼主!!
elevenll
帖子: 57
注册时间: 2007-11-02 1:24
送出感谢: 0
接收感谢: 0
联系:

#5

帖子 elevenll » 2007-11-07 12:08

楼主.关于中文ubuntu跟windows之间copy都乱码的问题.
能帮助解决下吗,
听说转换utf8编码.

新手呀.尽量具体
月圆之夜,华山之颠,一人独来,白衣如雪,冰刀如电
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
送出感谢: 0
接收感谢: 2 次
联系:

#6

帖子 dbzhang800 » 2007-11-07 12:20

elevenll 写了:楼主.关于中文ubuntu跟windows之间copy都乱码的问题.
能帮助解决下吗,
听说转换utf8编码.

新手呀.尽量具体
先把你的问题描述的具体一点
pengben
帖子: 1
注册时间: 2007-11-09 9:48
送出感谢: 0
接收感谢: 0

#7

帖子 pengben » 2007-11-09 9:50

出错了,能帮忙分析一下原因吗?

$ ./unzip.gbk 1.zip
unzip 1.zip
Traceback (most recent call last):
File "./unzip.gbk", line 61, in ?
fix_encoding(out)
File "./unzip.gbk", line 42, in fix_encoding
fix_encoding(filename)
File "./unzip.gbk", line 42, in fix_encoding
fix_encoding(filename)
File "./unzip.gbk", line 37, in fix_encoding
new_filename = latin2cn(filename)
File "./unzip.gbk", line 8, in latin2cn
latin = uni.encode('latin1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 12-16: ordinal not in range(256)
回复

回到 “字体美化和中文支持”