去年,我不得不从 OS 9 左右转换旧的 Mac 字体,以便有人在 PC 上使用。我发现当时字体数据存储在扩展属性 com.apple.ResourceFork 中。实际文件大小将在终端中显示为 0。我可以通过简单地使用 xattr -p com.apple.ResourceFork font > font.ttf 打印出该扩展属性的值来解决这个问题。
现在有了 Snow Leopard 和 HFS+ 文件压缩,情况发生了变化。如果您现在尝试打印出旧式扩展属性,您将只得到十六进制而不是值。除非使用 -x 选项指定,否则新的扩展属性不会出现任何十六进制。这是一个例子:
xattr -l com.apple.FinderInfo Rublof
Rublof: com.apple.ResourceFork:
00000000 00 00 01 00 00 00 9E 50 00 00 9D 50 00 00 00 32 |.......P...P...2|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...
Rublof: com.apple.quarantine: 0000;4b75ae02;Mail;39396996-3C5C-48F5-8BDD-775EB40CAD9C|com.apple.mail
在 ResourceFork 上运行 xattr -p 将输出十六进制,在隔离区运行它会得到 ASCII。显然,Apple 改变了他们处理扩展属性的方式,也许他们忘记了仍然保留 OS 9 字体的人。
我在这里遗漏了什么,还是我只是编写一个脚本将十六进制转换为 ASCII?