談談關於CSS的UTF-8和GB2312編碼問題
作者:Eve Cole
更新時間:2009-06-06 18:41:25
不知道大家在做頁面的時候會不會遇到樣式定義不生效的問題,基本的表現就是怎麼改樣式都沒顯示或只有某些瀏覽器正常,這時通常需要做下面的幾步:
確認所修改的樣式檔案是否為目前頁面的樣式檔案(多個環境的情況)
確認文件中的路徑是否正確(可能手誤多寫或少寫)
如果上面兩點都確認沒問題或只是一部分樣式失效,基本上可以確定是文件的編碼問題
大家都知道使用「UTF-8」比「GB2312」跨平台的兼容性更好,卻不一定知道文件的編碼跟文件編碼的申明不是一回事,以為只要申明了文件的編碼類型就是改了文件的編碼,導致很多時候只是簡單的申明了文件的編碼類型,而並沒有真的修改文件編碼類型,當瀏覽器以申明的編碼類型去解析文件時,由於文件的實際編碼跟申明不同,出現解析不正確的問題。
以上問題如何產生呢?
只修改了申明,沒有保存與申明對應的文件編碼類型
在不同文件間拷貝時,兩個文件間的編碼不一樣
上面的問題只要再另存一份,選擇跟申明一樣的編碼類型即可解決。
如果上面的方法都沒有效的話,可能就是編輯軟體的問題啦,建議換個編輯器試試。
目前我知道的會有問題的編輯器:
EmEditor Professional v7.50 Alpha 5(可能還是Alpha版本的關係,在UTF-8不加簽名時,如果樣式註釋結尾出現特定的中文,如「不、用、接、名、近、見、鬼、評、論、的、出、寫、下、現、面、日」等,會導致之後的內容無法被IE7解析)
Editplus(不知道是哪個版本了,有人知道請告訴我,儲存UTF-8加簽名時,簽章會導致內容無法被解析)
註:以上說的都是指樣式部分,包括頁面中的樣式和獨立的樣式檔案。