Safari& bootstrap soft hyphenation bug:发生了什么事?

时间:2016-03-29 08:19:38

标签: twitter-bootstrap safari

this demo on JSFiddle中,当链接到soft hyphenation时,Safari会出现一个奇怪的Bootstrap错误。当­­前面有字符fi时,会出现一个看起来很奇怪的字符«Ṏ»(U+1E4E)。我甚至用双变音符号看过它:

Latin Capital Letter O With Tilde And Double Diaeresis

任何想法发生了什么? Safari supposedly支持­

2 个答案:

答案 0 :(得分:2)

将您的测试用例煮沸后,看起来只有当某些内容被设置为:

时才触发该错误(在Bootstrap的情况下)
  pg_search_scope :search, against: [:name, :email],
    using: {tsearch: {prefix: true}}

(当然,文字需要使用软连字符和" fi"正如你所描述的那样。)

您似乎遇到了WebKit Bug 150006 - REGRESSION(r182192): Ligatures do not interact correctly with SHY in some fonts,已在WebKit r190891中修复。

因此,幸运的是,你的bug在目前的WebKit Nightly版本中并没有重现(例如r198607)。不幸的是,Apple还没有发布包含修复程序的Safari版本。希望修复程序能够进入OS X Safari 9.1之后的任何版本(可能是Safari 9.2或10)。

"连接"由字体引擎处理为(潜在的)ligature,通常呈现为" f" " i"合并为一个线段。这就是为什么测试用例中的其他字母组合没有触发错误的原因;只有" fi"有可能是一个结扎线,因此当它与一个软连字符相邻时,它会碰到字体引擎中的错误。

答案 1 :(得分:1)

不幸的是,这个WebKit错误仍然存​​在于iOS 9.2.3中的Safari中。我在网页上使用了一些webfonts(例如Roboto Slab)。我的解决方案是通过在" f"之间插入Zero Width Non-Joiner特殊字符来打破连字。和"我",例如:

f‌ilter