如何解压文件名含非拉丁字符的tar.bz2归档文件?
解决tar.bz2归档中含特殊字符(如ë)的文件解压问题
出现这个错误是因为归档内的文件名使用的编码(比如ISO-8859-1)与当前系统环境的编码(通常是UTF-8)不匹配,导致tar无法正确解析特殊字符,进而无法创建文件。以下是几种可行的解决方法:
指定tar使用对应编码解析文件名
如果明确归档内文件名的编码(例如西欧语言常用的ISO-8859-1),可以通过--encoding参数指定编码,搭配--force-local避免远程路径干扰:tar -jxf "file.tar.bz2" -C "folder" --force-local --encoding=ISO-8859-1临时切换终端编码环境
通过设置LC_CTYPE环境变量临时切换编码,让tar继承该设置解析文件名:LC_CTYPE=iso_8859_1 tar -jxf "file.tar.bz2" -C "folder"使用bsdtar替代GNU tar
bsdtar对字符编码的兼容性更强,部分场景下直接使用即可正常解压:bsdtar -jxf "file.tar.bz2" -C "folder"
解压完成后,可通过ls命令验证文件名是否正确显示为ë。
内容的提问来源于stack exchange,提问作者Jacek Wojcik
相关产品推荐
相关产品推荐

