为样式表指定字符集

时间:2012-03-12 03:25:11

标签: html css character-encoding

我的样式表包含类似于以下内容的CSS代码:

#nav > li::after {
    content: " ➻";
}

您可能会注意到➻不是ASCII字符,因此在未指定字符集的情况下将其包含在文件中是“危险的”。

现在情况一直很顺利,我从来没有遇到过CSS样式表的编码问题(主要是因为用户代理在猜测“UTF-8”方面越来越好),但我想知道是否有正确的方法来明确指定它。

我试过这个:

<link rel="stylesheet" type="text/css; charset=UTF-8" href="foo.css"/>

但它似乎没有做任何事情,因为我试图指定一个虚假的编码,它仍然正确显示。

1 个答案:

答案 0 :(得分:3)

找到我需要的引文:

http://www.w3.org/TR/CSS2/syndata.html#charset

  

当样式表位于单独的文件中时,用户代理必须   确定样式表时,请遵循以下优先级   字符编码(从最高优先级到最低优先级):

     
      
  1. “Content-Type”字段中的HTTP“charset”参数(或其他协议中的类似参数)
  2.   
  3. BOM和/或@charset(见下文)
  4.   
  5. 或来自链接机制的其他元数据(如果有)
  6.   
  7. 引用样式表或文档(如果有)的字符集
  8.   
  9. 假设UTF-8
  10.   

因此,虽然@charset "UTF-8";是相关的,但HTTP标头会覆盖它。您可以使用<meta charset="utf-8">在HTML文档的元标记中指定charset,它将满足#4,并且用户代理应该回退到UTF-8。

对于其中一些“字形”,最重要的是最终用户至少安装了一个支持它的字体,因此在编写CSS时请记住这一点。并非所有字体都支持所有unicode字符。