CSS字符编码



根据W3C, CSS可以通过第一行的@charset设置其字符编码,如果我说我应该在每个CSS中放入@charset "UTF-8",即使它只包含ASCII字符,这是有效的吗?

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

注。

不,作为一个非限定语句,这样说是无效的。如果您的文件只包含ASCII字符,那么它的字符编码很可能是ASCII兼容的(目前EBCDIC并不常用),因此该规则是无害的,但只要文件一直是ASCII-only,则该规则也是毫无意义的。

重要的是当一个非ascii字符被插入到CSS文件中时,无论出于什么原因,会发生什么。例如,它可能是在使用生成智能引号的程序编辑文件时插入的看起来无害的智能引号(")。与UTF-8编码相比,在windows-1252编码中更有可能插入智能引号。因此,如果文件有@charset "UTF-8"规则,那么分析问题可能会变得有点困难。

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

将编码声明为UTF-8没有开销。如果数据只包含ASCII字符,任何读取UTF-8的合适例程处理这些字符的速度都与简单读取ASCII一样快。读取UTF-8字节流的例程将让首先检查字节是否在ASCII范围内,如果在,则将其作为ASCII字符的代表。

最新更新