浏览器支持和土耳其里拉标志的变通方法

jpa*_*kal 6 html unicode turkish

所以土耳其最近决定为他们的里拉创造一个新的标志:

在此输入图像描述

Unicode 6.2(2012年9月发布)将添加到其保留曲目U+20BA ? TURKISH LIRA SIGN,并且我被要求在我正在构建的Web应用程序中开始使用它.问题是没有人支持这个(除了显然是Windows 8),它并没有显示为通常的方形,问号或块十六进制,而是各种其他随机的东西.通常可靠的fileformat.info认为它应该是这样的:

在此输入图像描述

...这也是我在OS X 得到的.Charbase也错了,但不同:

在此输入图像描述

实际问题:有没有合理的解决方法?最大的复杂因素是该字符应该被允许在任意的,用户可编辑的文本中,因此任何基于图像的解决方案都在窗外.

理论上的问题是:据我所知,U + 20BA从未有过分配给它的角色,那么这些奇怪的符号从何处传入?我没有得到同样的问题U+20B9 ? INDIAN RUPEE SIGN,这几乎是新的和非常支持的,但至少失败更优雅.

Juk*_*ela 10

目前最好的镜头可能是使用Google字体Source Sans Pro.它的latin1子集包含TURKISH LIRA.所以你可以用eg

<link rel=stylesheet href=
"http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic&amp;subset=latin,latin-ext">
<style>
body { font-family: Source Sans Pro; }
</style>
Run Code Online (Sandbox Code Playgroud)

但是,这意味着您应该考虑使用Source Sans Pro作为整体字体.这有两个原因.假设您font-family: Arial, Source Sans Pro举例说明.首先,IE 9无法呈现TURKISH LIRA(它不擅长使用字体,真的).其次,在技术上使用字体的浏览器上,像"₺50"(以土耳其语LIRA开头的数字)这样的表达式看起来很奇怪,因为数字比货币符号高得多.原因是在Source Sans Pro中,TURKISH LIRA被设计为匹配该字体中数字的高度,而在Arial中,数字的高度较小.

作为替代方案,您可以使用相对较大尺寸的TURKISH LIRA图像并使用img元素嵌入它,并heightem单位设置属性以使其缩放到字体大小.较大尺寸的原因是图像通常向下缩放,但不是很好向上.在我的HTML中使用特殊字符的指南中,我建议使用height: 0.8em嵌入图像的字符,但确切的尺寸确实取决于字符和图像的设计以及它应该如何与字体中的字符相关.通常的原则是使"$","£"和"€"等货币字符占据与数字相同的高度(具体地说,"衬里数字"或"大写数字",这是大多数字体默认拥有的; Source Sans Pro也有"老式数字",但需要使用CSS选择它们.

事实上,TURKISH LIRA是去年九月增加的Unicode中的最新字符,从字符采用Unicode到字体的一般可用性,通常需要十年或更长时间.

PS这是一个字体问题,而不是浏览器问题,虽然有些浏览器(IE)仍然难以从不同的字体中拾取字符.