Mac 上的奇怪符号

Mac 上的奇怪符号

自从我拥有 Mac 以来,我一直看到这个奇怪的符号。直到今天,它只出现在 OpenOffice.org 中的项目符号位置。第一张图片显示了在 Windows 系统上创建的 .doc 文件中的这个符号。

我没怎么在意——只是有点烦人。无论字体是什么,它都会出现。如果我删除文本并使用工具栏插入项目符号列表,就会出现真正的项目符号。

然后,今天我在 iTunes 中注意到了这一点——这似乎很奇怪。

图 3 是该字符的放大图。上面写着:私人用途 E000 F8FF。

它是什么(与unicode相关?),以及如何使项目符号正常工作?

开发办公室 iTunes 替代文本

编辑:情节变得更加复杂...如果我在安全模式下启动,这些符号看起来就像在电影拍摄场景开始时看到的小板一样......

答案1

(呃,是的,这个答案太长了。而且这些要点没有一个圆满的结局!突出显示为粗体...)

问题中的图像定义在苹果的 Last Resort 字体,其中236 种不同有趣的符号。我想这个名字说明了一切,但是根据维基百科:

LastResort 是一种 Mac OS 字体,对于最终用户而言是不可见的,但系统会使用它来显示其他字体所没有的字形。LastResort 提供的符号会根据字形在 Unicode 系统中的位置将其归类,并提示用户需要使用哪种字体或脚本来查看不可用的字符。

苹果公司解释道:

示例字形的选择方式有多种。几乎所有婆罗米文字都显示首辅音 ka。拉丁文使用字母 A,因为它是首字母,并且因为每个拉丁文块中都有一个字母 A,因此它们很容易区分。希腊文和西里尔文使用它们的最后一个字母 omega 和 ya,因为它们非常独特。大多数其他字母表和音节表在有特色的地方使用它们的首字母。

(我喜欢Unicode BMP Fallback 字体,就像在 Firefox 中使用一样,效果更好,因为它可以显示精确的 4 个字符的 Unicode 代码。)

所以,你的 Mac 不知道要显示什么,并使用 Last Resort 字体来提供一些信息

我的第一个猜测是:Microsoft Office 使用了一些专有的符号字体,其中它使用了私人使用区域(PUA)来定义项目符号的外观。(或者作者安装了一些奇怪的字体,从中用到了一些有趣的项目符号。)您的 Mac 既不知道该字体,也没有任何其他恰好定义了相同 Unicode 字符代码的字体。即使另一种字体确实为该代码定义了一些字符,也无济于事,因为来自私有使用区域的字符可能根据定义在不同的字体中具有完全不同的含义。在 Mac 上安装 Office 可能也包含该字体,这很可能使项目符号在 OpenOffice.org 中也能正常显示。(事实上,安装 Office 试用版可能已经安装了缺失的专有字体。)

嗯,不。

虽然上述内容对于 Unicode 的任何合理使用都是正确的,但进一步调查发现,在旧的应用程序中Microsoft 使用范围 U+F020..U+F0FF 来显示符号使用其他字体。当显示该范围内的字符时,它会自动切换到这些字符的另一种字体。一个名为 SIL International 的组织想通了

使用符号字体格式化的文本(至少在某些 Microsoft 应用程序中)的神秘之处在于,即使文档以 Unicode 编码,字符似乎也以 8 位代码点的形式进行编码。当将 U+F021 从剪贴板插入到 WordPad 时,WordPad(更准确地说是 Rich Edit 控件)不仅应用了 Wingdings 字体,而且似乎还将代码点更改为 0x21。当将字符重新格式化为非符号字体时,它变为 U+0021。

或者像微软一样解释它, 为了Microsoft 平台软件开发工具包-2000 年 1 月版

Richedit 4.1 将 PUA 中 U+F020 到 U+F0FF 之间的字符范围映射到符号字体。因此,当您映射此范围内的任何字符时,Richedit 4.1 都会显示符号字符,而不是最终用户定义字符 (EUDC)。

思考与此同时,微软已将这些符号添加到许多 Microsoft 版本的字体中,以便较新的 Microsoft 软件无需切换字体即可显示这些字符。例如,U+F020 显示一个项目符号在大多数字体中,但不采用 Arial在 Mac 上。安装 Microsoft 版本的 Arial 可能会有所帮助。但这肯定会让你陷入其他问题当你使用阿拉伯语时……

我怀疑任何非微软软件是否能处理上述异常。

但总体来说:

确定字体名称的一种方法:从 Word 打印到 PDF 时,可以选择在 PDF 中包含字体(或:使用的字符子集),以确保在未安装该字体的系统上也能正常打印。因此,查看 PDF 的属性可能会显示该字体的名称。也许只需在 OpenOffice.org 中选择该字符,字体列表中就会显示其名称。(但是,考虑到如上所述的符号自动显示,这两种方法可能根本不适用于项目符号。)

确定准确字符代码的一种方法:复制(对于 Pub Quiz ,从 iTunes 搜索的自动建议中复制)并粘贴到一些 Unicode 代码转换器。这表明 Pub Quiz 角色是U+E047, 哪个可以会有一些奇怪的双引号。但是,因为这是来自私人使用区域,我们不知道哪种字体我猜想当开发人员在 iPhone 应用商店中输入这个名字时他们想到的只是开发商可以告诉我们他们希望它是什么样子的......

(Fileformat.info 有一个简洁的实用程序以使用计算机上的所有字体显示该字符。

答案2

我只能回答你问题中的“它是什么”部分。

侧面的文字“私人使用”和“e000”以及“f8ff”指的是 Unicode 字符集 - 特别是私人使用放:

UCS 包含 137,468 个供私人使用的代码点。这意味着这些代码点可以由 ISO 和 Unicode 联盟以外的个人、组织和软件供应商分配具有特定属性的字符。私人使用区域 (PUA) 是为私人使用保留的几个范围之一。对于此范围,Unicode 标准未指定任何字符。

基本多语言平面包含 U+E000 至 U+F8FF (57344–63743) 范围内的 PUA。平面十五 (U+F0000 至 U+FFFFD) 和平面十六 (U+100000 至 U+10FFFD) 也完全保留供私人使用。

PUA 的使用是从某些亚洲编码系统继承而来的概念。这些系统有私有使用区域,用于以特定于应用程序的方式对日语外语(罕见的人名字符)进行编码。私有使用区域的一个例子是 Apple 将 U+F8FF 用于 Apple 徽标。

根据Grotto11 的 Brian Tiemann,当字符未定义时会显示这些内容:

看看这个。像往常一样,它是用于显示不可显示的字符的方块。但是现在它都是矢量图形,而且由于阿拉伯字体集显然尚未完成(随着他们不断完成 OS X 的定点发布,他们不断添加填充这些字母块的字符集包),它是包含有趣信息的方块。阿拉伯语占据的 Unicode 范围,加上一个中心符号来告诉您最终将出现什么。

当 Apple 尚未完成某件事时,就会出现这种情形。

所以我们的好奇心现在非常强烈;我们切换到 Unicode 十六进制输入模式(按住 Option 并输入四位十六进制数字)并开始输入值,看看范围是什么样的、它们被分配到什么,以及它们有哪些符号:

统一码

嗯嗯。这不是很疯狂吗?我喜欢它。(尤其是那个看起来像苏斯博士的“私人使用”的。)苹果甚至让未实现的功能看起来很酷。这些方块位于每个指定字符块的开头,并定义该块将是什么,如果字符尚未全部完成,它们都会显示为通用标识符。

但愿我能告诉你为什么它会被展示出来...

答案3

这听起来像是字体缓存损坏问题。如果您正在运行 Leopard (10.5),您可以尝试sudo atsutil databases -remove在终端中运行以删除计算机上的字体缓存。GUI 替代方案是FontNuke

答案4

尝试在安全模式下启动,在 10.5 和 10.6 中它将清除所有缓存并且通常更容易处理这类事情......

启动到安全模式会做几件事:

它强制对启动卷进行目录检查。

它仅加载所需的内核扩展(/System/Library/Extensions 中的某些项目)。

它会禁用除 /System/Library/Fonts(Mac OS X 10.4 或更高版本)中的字体之外的所有字体。

它将通常存储在 /Library/Caches/com.apple.ATS/(uid)/ 中的所有字体缓存移至废纸篓,其中 (uid) 是用户 ID 号,例如 501(Mac OS X 10.4 或更高版本)。

它禁用所有启动项和登录项(Mac OS X 10.4 或更高版本)。

所以这应该可以解决可能导致此问题的大多数问题...要进入安全模式启动,只需在听到启动铃声之前按住 Shift 键...您有大约 2-3 秒的时间来执行此操作,当您听到铃声时...

过一会儿你就可以放手了....进入登录屏幕后,只需告诉系统重新启动,然后让其正常重新启动....然后尝试一下...

我对安全模式有更多了解这里...

相关内容