2012-07-27 38 views
1

我有以下的CSS:內容的CSS「★」顯示爲「â~......」

.rating:not(:checked) > label:before { 
    content: '★'; 
} 

而且正在呈現的時候,而不是一個我看到â˜。如果我使用Firebug,並將內容更改爲★,則顯示正確。

會發生什麼?我該如何解決它?

感謝

回答

9

大概文本編碼(字符集)爲您的CSS和HTML文件不同意。

要設置樣式表的編碼,請使用@charset;例如:

@charset "UTF-8"; 

要設置一個HTML網頁的編碼,使用<meta>標記(在頂部的<head>部);例如:

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

或HTML 5:

<meta charset="UTF-8"> 

一個樣式表的@charset必須同意選擇用於其的HTML頁面的編碼。

+1

請注意,AFAIK http-equiv''標題只有'file://'訪問纔有效; Web服務器提供的實際HTTP頭是「http://」的計數。另外,請注意,對於HTML5,您可以只鍵入:'。 – Phrogz 2012-07-27 05:46:35

+0

編碼不必相同。重要的是編碼是正確申報的。 – 2012-07-27 09:37:36

+0

@Progrog好點,我會將其添加到答案。 – 2012-07-27 23:40:07

1

原因是BLACK STAR「★」(U + 2605)在包含CSS代碼的源代碼中出現爲UTF-8編碼,但該源被解釋爲ISO-8859-1編碼。修復取決於CSS代碼的位置,服務器軟件等。

請參閱Declaring character encodings in CSS