所以土耳其最近决定为他们的里拉创造一个新的标志:
Unicode 6.2(2012年9月发布)将此its repertoire添加为U+20BA ₺ TURKISH LIRA SIGN
,我被要求在我正在构建的网络应用中开始使用它。问题是 nobody 还支持这个(除了显然是Windows 8),并且它不会显示为通常的方形,问号或块的十六进制,而是各种其他随机的东西。通常可靠的fileformat.info认为它应该是这样的:
...这也是我在OS X上得到的结果。Charbase也错了,但不同:
实际问题:有什么明智的方法可以解决这个问题吗?最大的复杂因素是该字符应该被允许在任意的,用户可编辑的文本中,因此任何基于图像的解决方案都不在窗口。
理论上的问题:就我所知,U + 20BA从未有过分配给它的角色,那么那些奇怪的符号从哪里爬来?我对U+20B9 ₹ INDIAN RUPEE SIGN
没有遇到同样的问题,这几乎是新的和非常支持的,但至少会更优雅地失败。
答案 0 :(得分:10)
目前最好的镜头可能是使用Google字体Source Sans Pro。它的latin1子集包含TURKISH LIRA。所以你可以使用例如。
<link rel=stylesheet href=
"http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,700,400italic,700italic&subset=latin,latin-ext">
<style>
body { font-family: Source Sans Pro; }
</style>
但是,这意味着您应该考虑使用Source Sans Pro作为整体字体。这有两个原因。例如,假设您声明font-family: Arial, Source Sans Pro
。首先,IE 9无法呈现TURKISH LIRA(它不擅长使用字体,真的)。其次,在技术上使用字体的浏览器上,像“₺50”(以土耳其语LIRA开头的数字)这样的表达式看起来很奇怪,因为数字比货币符号高得多。原因是在Source Sans Pro中,TURKISH LIRA被设计为匹配该字体中数字的高度,而在Arial中,数字的高度较小。
作为替代方案,您可以使用相对较大的TURKISH LIRA图像并使用img
元素嵌入它,height
属性设置为em
单位缩放到字体大小。较大尺寸的原因是图像通常向下缩放,但不是很好向上。在我的Guide to using special characters in HTML中,我建议将height: 0.8em
用于嵌入图像的字符,但确切的尺寸确实取决于字符和图像的设计以及它应该如何与字体中的字符相关联。通常的原则是使“$”,“£”和“€”等货币字符占据与数字相同的高度(具体地说,“衬里数字”或“大写数字”,这是大多数字体默认拥有的; Source Sans Pro也有“老式数字”,但需要使用CSS选择它们。
为了正确看待,TURKISH LIRA是去年九月增加的最新Unicode字符,从字符采用Unicode到字体的一般可用性通常需要十年或更长时间。
P.S。这是一个字体问题,而不是浏览器问题,尽管某些浏览器(IE)仍然难以从不同的字体中拾取字符。
答案 1 :(得分:4)
您可以通过以下网址投放自己的字体:https://developer.mozilla.org/en-US/docs/CSS/@font-face并通过http://fontforge.org/
创建自己的字体如果您使用XML并且您的要求不允许它,您可以使用实体来定义一些标记,其中包括暂时的图像标记(以后可以用Unicode字符替换),或者执行类似的操作HTML来自JS or CSS。
答案 2 :(得分:1)
我认为'什么都不做'才是最好的主意。如果用户的浏览器/字体不支持它,那么它就是需要升级的用户。你在服务器端做的任何事都是黑客攻击(虽然通过CSS提供字体并不是一个坏主意)。如果您的应用程序支持用户提供的文本中的任意Unicode,那么最终您的应用程序将变得合规,因为较旧的浏览器和设备会被更新的浏览器和设备替换。
向老板解释这是困难的部分。