在this demo on JSFiddle中,当链接到soft hyphenation时,Safari会出现一个奇怪的Bootstrap错误。当­
或­
前面有字符fi
时,会出现一个看起来很奇怪的字符«Ṏ»(U+1E4E)。我甚至用双变音符号看过它:
任何想法发生了什么? Safari supposedly支持­
。
答案 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