HTML与HTML编码字符中非ASCII字符的影响

时间:2015-04-27 20:43:17

标签: html utf-8 fonts character-encoding non-ascii-characters

我今天早些时候遇到过一个问题,由于kramdown文件中有一些非ASCII字符,有人无法编译静态网站。在编写一个在我们的内容中找到这些字符的小脚本时,我遇到了大量非HTML编码的特殊字符。

将这些字符直接包含在HTML中会有什么影响?拿©字符。

If I include the character directly in HTML,它似乎在我的浏览器中正确呈现。话虽这么说,我不知道那些没有安装支持这些字符的字体的副作用。

在HTML中保留这些非ASCII字符有什么副作用?我知道在某些情况下它会导致出现奇怪的(?)字符,但我想了解更多关于如何渲染这些特殊字符的具体信息。

如果我对这些特殊字符进行HTML编码并且客户端没有支持它们的字体,它是否会显示相同的(?)字符?使用HTML编码字符和非编码字符之间是否有任何有意义的区别?usign

1 个答案:

答案 0 :(得分:2)

  

使用HTML编码字符与非编码字符之间是否有任何有意义的区别?

一般而言,浏览器无法显示它们。 如果你想使用它们,因为你称它们为“非标准”字符(非常标准的字符,而不是ASCII字符),你应该指定一个编码,最好是utf-8。这样做的HTML5方式(几乎所有浏览器都向后兼容并支持)是

<meta charset="utf-8">

也就是说,一些从markdown等编译静态HTML的工具可能会遇到问题,但这取决于工具。使用像&copy;这样的实体更安全;您也可以在不指定编码的情况下使用它。

这不是全文,因为浏览器解码文件的方式也会受到其他因素的影响,例如HTTP响应标头。此外,正如您所观察到的那样,即使您省略它,浏览器也会尽一切可能仍然正确地解析它,但这并不能保证。