我在一台旧的 Unixware 机器上使用 ISO8859-1 编码创建了一个 tar 存档。当我尝试在 Macosx Lion 下提取它时,我发现德语变音符号有点奇怪。例如:
我打开一个 terminal.app 窗口,将编码设置为“ISO8859-1”,并像这样设置我的语言环境:
export LANG=de_DE.ISO8859-1
export LC_ALL=de_DE.ISO8859-1
然后看一下档案:
dhcp202:Downloads frank$ tar tvf backup.tar home/frank
x home/frank/
x home/frank/Präferenzen/
请注意“ä”显示正确
然后我用
tar xvf 备份.tar home/frank
“ä” 在 tar 的输出中也正确显示,但是当我列出目录内容时,我看到:
dhcp202:Downloads frank$ ls home/frank
Pr%E4ferenzen
那是怎么回事?
答案1
HFS+ 上的文件名采用 UTF-8 格式,而不是任何其他编码(除了旧文件的 MacRoman)。您可以在内核源代码;例如,在getdirentries_callback()
中hfs_catalog.c
。