2013-02-28 74 views
2

根据W3C,CSS可以在第一行中设置其字符编码为@charset,是否应该在我制作的每个CSS中放入@charset "UTF-8",即使它只包含ASCII字符?CSS字符编码

我使用UTF-8声明之后会有任何性能损失吗?

p.s.我想不出一种方法来测试它。

+0

我想这个太清楚了,但如果你启用了缓存,它应该只缓存整个文件。 – kabuto178 2013-02-28 02:58:26

回答

2

不,这样说是无效的,作为一个无条件的陈述。如果你的文件只包含ASCII字符,那么它的字符编码很可能是ASCII兼容的(EBCDIC在那里几乎没有使用),所以这个规则是无害的,但是只要文件保持仅为ASCII就没有意义。

重要的是,无论出于何种原因,将非ASCII字符插入CSS文件时会发生什么。例如,它可以是在编辑文件时插入无害外观智能报价(“),以便生成智能报价的程序。在windows-1252编码中插入的智能引用比在UTF-8编码中插入更有可能。因此,如果该文件具有@charset "UTF-8"规则,则分析问题可能会变得更加困难。

另一方面,如果您知道您的CSS文件将使用默认使用UTF-8编码的软件编辑,那么即使它仅包含ASCII字符,也可以将其声明为UTF-8编码。例如,如果您有一天编辑文件并添加一个声明,如content: "“foo”",则可能会忘记添加@charset规则。

在将编码声明为UTF-8时没有开销。如果数据仅包含ASCII字符,则任何读取UTF-8的正常例程都将像简单读取ASCII一样快速地处理字符。读取UTF-8字节流的例程具有首先检查该字节是否在ASCII范围内,如果是,则将其作为ASCII字符。