iOS5 中 Unicode 字符的绘制方式不同

Posted

技术标签:

【中文标题】iOS5 中 Unicode 字符的绘制方式不同【英文标题】:Unicode characters being drawn differently in iOS5 【发布时间】:2012-01-10 06:23:20 【问题描述】:

将 uibutton 的标题设置为 u25C0 会导致它在 ios5 中具有蓝色背景,但在 iOS4.3 中没有。

奇怪的是,将标题设置为 u25C2,每行 2 个字符,按预期显示。去图。稍后我会附上一张图片。

顺便说一句,这个蓝色按钮目前是否在任何 Apple 应用程序中使用?

谢谢。

左:iOS 5 右:iOS 3.2

这是通过将标题设置为前面所述的 unicode 字符来完成的。

【问题讨论】:

我看不出你的问题是什么。另外,请提交bug report。 我上传了一张图片来说明问题。希望这会有所帮助。 【参考方案1】:

您可以尝试使用 Unicode6.1 的变体选择器。关于 Emoji,添加“\U0000FE0E”以指定非彩色字形。

例如,对于左三角形(U+25C0),您可以指定 @"\U000025C0\U0000FE0E",这会将字形从 Apple Color Emoji 样式更改为非彩色普通 emoji,至少在 Mountain Lion 上的 iOS6 模拟器。

Swift 4.0

let glyph = "\u000025C0\u0000FE0E"

【讨论】:

经过测试,这似乎不适用于 iOS5,而是修饰符显示为字符,但在 iOS6 上运行良好【参考方案2】:

您需要适当地设置字体。您看到的蓝色图标是 Apple Color Emoji 字体中的 U+25C0。我不确定 iOS 上还有哪些其他字体包含您想要的符号,但如果您找到该字体并明确设置它,那么它应该呈现您想要的图标。

【讨论】:

该死的,表情符号似乎无处不在。不幸的是,我四处搜索,找不到任何工具来查看 iOS 字体。我尝试了您的建议,但至少对我尝试过的字体不起作用。我正在寻找一种使用旧字符而不是表情符号的方法。据我所知,其他人似乎也遇到了这些表情符号的问题,没有发布解决方案。如果我发现任何东西,我会更新这篇文章。 @DDT_DZ:尝试将字体设置为 Hiragino Mincho ProN 再次感谢您。我已经对其进行了测试,并且可以正常工作。您是如何发现这是正确的字体的? @DDT_DZ:或者澄清一下:Helvetica 一开始就没有这个字形。您看到的是系统使用字体回退行为选择的另一种字体。然而,Apple Color Emoji 字体在 iOS 5 中引入时在字体后备列表中排名较高,因此更改了系统为绘制字形而后退的字体。 Hiragino Mincho ProN 在 iOS 7 中为我解决了这个问题。对于我想要的,在 ios6 上我需要使用系统字体。【参考方案3】:

刚刚发现如何在没有代码的情况下实现这一点。在 OSX 屏幕右上角单击您所在国家/地区的国旗附近,打开 Symbols&Emoji 面板。

    键入您要查找的符号 双击您找到的符号 您会看到它出现在文本文件中 按Enter,您将在 Xcode IB 中看到表情符号

    在搜索字段中输入“变体”关键字 双击变体选择器符号 确定是“VARIATION SELECTOR-15” 文本字段中没有任何变化(不用担心) 按Enter后Xcode IB会变成扁平的表情符号!

【讨论】:

以上是关于iOS5 中 Unicode 字符的绘制方式不同的主要内容,如果未能解决你的问题,请参考以下文章

Python中print不同书写格式

unicode字符集范围

在 iPhone 上绘制 Unicode 字符

Python长度的unicode字符串混淆

delphi返回一个汉字的Unicode编码

编码问题