2013-02-28 71 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字符。