在html5中渲染MS Symbol字体字符

时间:2013-08-29 17:34:21

标签: html5 fonts ms-word symbols docx

我想获取Microsoft Symbol字体中的字符(取自docx文件中的w:sym标记)并以html格式呈现它们。当我看到Word将文档保存为html时如何写出字符时,我看到了这一点:

<span style='mso-char-type:symbol;mso-symbol-font-family:Symbol'>Â</span>

这在Word和Word的html输出中显示为脚本R.

当我在自己的html文件中写相同的东西时,我看到常规字体中的A-hat,Chrome的元素检查器警告mso-属性未知。

在Word的html输出中有很多特定于mso的东西,但我无法看到让Chrome知道如何解释mso-char-type和mso-symbol-font。我在IE中看到了相同的行为。

是否有一种简单的方法可以告诉浏览器使用Symbol字体?或者我是否必须将Symbol字体字符显式转换为Unicode(使用静态转换表?)

谢谢,

Wayne

2 个答案:

答案 0 :(得分:2)

符号字体是一种私有编码字体,即它根据字符代码标准将各种字形放置在应由其他字符占据的位置。这意味着只要Symbol字体不可用,或者页面样式表被覆盖,或者浏览器行为正确,使用它的网页就会严重失败:例如,字母“”无法使用Symbol字体呈现,因此浏览器将使用后备字体。

正确的方法是在UTF-8编码页面中使用Unicode编码字符,例如“ℜ”,在适用的元素集上使用font-family以包含包含此字符的字体列表。有关此问题的一般说明,请参阅我的Guide to using special characters in HTML

在某些有缺陷的浏览器上运行的不恰当的方法是以浏览器通常理解的方式将字体设置为Symbol,例如<font face=Symbol>Â</font><span style="font-family: Symbol">Â</span>。但如上所述,如果这“有效”,请将其视为浏览器错误。

所以是的,如果你现在有使用Symbol字体的数据,它应该映射到Unicode字符。

请注意,很少需要像“ℜ”(黑色字母大写R,脚本R)这样的字符。特别是,对于复数 z 的实部,标准(根据ISO 80000-2)表示法不是ℜ( z ),而是Re z < / em>的

答案 1 :(得分:0)

好的,只需删除mso-symbol并编写font-family:符号似乎有效。但是我怀疑这不是最好的做法...可以在这里找到将符号转换为unicode的表格:http://www.alanwood.net/demos/symbol.html