UTF-8是一种用于存储支持多语言的Unicode字符串的编码方式。
Unicode和UTF-8是在上世纪90年代以后开发的,因此在80年代开发的ZIP格式不支持UTF-8。 然而,随着ZIP格式成为压缩文件的标准格式,ZIP格式也需要支持Unicode,于是开发出各种能够在ZIP文件处理UTF-8字符串的方法。
Bandizip支持两种方式:一、将文件名直接保存为UTF-8;二、将文件名保存为MBCS并在扩展字段再保存UTF-8文件名。
这是将压缩在ZIP文件中的文件名以UTF-8保存的方式。 此为APPNOTE定义的标准UTF-8文件名保存方式,但有些压缩程序时常出现无法正确识别或因错误处理而无法正常显示文件名(出现乱码)的问题。 APPNOTE
这是将文件名保存为MBCS并在ZIP格式的扩展字段再保存UTF-8文件名的方式。 该方式也由APPNOTE定义为Info-ZIP Unicode Path Extra Field。 由于将文件名另外保存在扩展字段,ZIP文件大小可能会增大数十字节, 但基本上文件名保存为MBCS,因此兼容性更佳。
在使用不同语言的操作系统上,如果使用支持该扩展字段的压缩程序(7-Zip、WinRAR、WinZip),文件名不会出现乱码。
下图是在日文版Windows使用7-Zip打开在韩文版Windows压缩的文件的画面。
TAR或TGZ等格式是主要在Unix使用的压缩格式,Unix系统使用UTF-8文件名。启用该功能后压缩文件,即便文件名中含有韩文,也能在Unix系统上正常解压。
但Windows的有些程序可能无法正确识别TAR/TGZ格式的UTF-8代码页。