2024-04-26 17:49:29 发布
网友
在windows上,当文件路径中有汉字时,会将这些汉字拼凑在一起广州塔减压后,它们仍然是乱七八糟的。在
这些都在文档中的Unicode issues中解释。在
对于PAX之前的所有tarball格式,包括tarfile使用的默认格式,文件名存储在“本地文件系统编码”中。压缩程序必须对解压程序想要什么进行疯狂的猜测,反之亦然。如果您在程序中不进行猜测,Python将为您完成,并猜测UTF-8。请参见^{},它解释了如果您不指定任何内容,它将使用ENCODING,以及{a3},这解释了它在Windows上默认为'utf-8'。在
tarfile
ENCODING
'utf-8'
因此,有三种解决方案:
format=tarfile.PAX_FORMAT
TarFile
tarfile.DEFAULT_FORMAT = tarfile.PAX_FORMAT
format='big5'
tarfile.ENCODING='big5'
这些都在文档中的Unicode issues中解释。在
对于PAX之前的所有tarball格式,包括} ,它解释了如果您不指定任何内容,它将使用
tarfile
使用的默认格式,文件名存储在“本地文件系统编码”中。压缩程序必须对解压程序想要什么进行疯狂的猜测,反之亦然。如果您在程序中不进行猜测,Python将为您完成,并猜测UTF-8。请参见^{ENCODING
,以及{a3},这解释了它在Windows上默认为'utf-8'
。在因此,有三种解决方案:
format=tarfile.PAX_FORMAT
传递给TarFile
构造函数。(您也可以设置tarfile.DEFAULT_FORMAT = tarfile.PAX_FORMAT
来更改默认值。)只要您所使用的解压工具理解PAX,就可以设置了。在format='big5'
传递给TarFile
构造函数显式地指定它。(您也可以设置tarfile.ENCODING='big5'
来更改默认值。)同样,您的工具很有可能使用系统配置的OEM字符集,但不能保证这一点,而且在不知道您正在使用什么工具的情况下,我无法提供更多关于如何解决它的细节。在相关问题 更多 >
编程相关推荐