元标记“charset = utf-8”确保在任何浏览器中都能正确显示吗?

时间:2013-04-27 16:11:50

标签: html browser utf-8 character-encoding multilingual

我正在一个多语种字符(拉丁语,西里尔语,日语,中文等)混合在一起的网站上工作。
我使用了以下元标记来确保内容的正确可视化:

<meta http-equiv="Content-type" content="text/html; charset=utf-8">

我的问题是:这是否足以100%确定所有用户都可以直观地看到内容?他们的操作系统是否需要对这些角色有特定的支持?

愚蠢的例子:所有现代浏览器和/或操作系统是否支持韩语字母/字符,或者是安装它们所需的用户?

1 个答案:

答案 0 :(得分:2)

meta标记不保证任何内容。它声明编码是UTF-8。它可能被HTTP标头覆盖。请参阅W3C的Character encodings

如果编码已被声明为UTF-8,并且它实际上 是UTF-8,那么您可以非常安全地使所有浏览器都能正确识别字符。他们显示是否部分取决于字体的可用性,部分取决于CSS中的font-family设置;看我的Guide to using special characters in HTML。它不依赖于操作系统。

关于韩语(韩语)字符,Fileformat.info data on font support似乎太有限了(我已向作者报告)。除了那里列出的字体,至少下面的字体包含它们,或者至少包含它们的大部分:Batang,BatangChe,Dotum,DotumChe,Gulim,GulimChe,Gungsuh,GugsuhChe,Malgun Gothic,Sun-ExtA。

因此,您可以编写包含韩语字符的长字体列表(按优先顺序排列),作为font-family值。我希望这适用于大多数现代计算机,但不是全部。为了最大化赔率,您需要通过@font-face使用可下载的字体(网络字体),例如Sun-ExtA,它似乎是免费字体,可从Alan Wood的repository获得。请注意它是一个大字体,你需要它的几种格式,例如,使用FontSquirrel来覆盖不同的浏览器。像大多数大字体一样,它只有一个(常规)字体,因此你不应该尝试将它用作粗体或斜体;确保您覆盖浏览器往往具有许多HTML元素的粗体和斜体设置,例如标题元素。