前幾天做頁面,排好的html頁面複制到aspx頁面上就是會出現差異,比如字型定義無效,基本的表現就是怎麼改樣式都沒顯示或隻有某些浏覽器正常,搞了半天才發現是編碼問題,DW預設建立的檔案編碼是gb2312的,vs預設是utf-8的,時間原因也沒重新排,就在web.config的Configuration節點下對這個頁面單獨設定了編碼。
代碼
<?xml version="1.0"?>
<configuration>
<system.web>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>
</system.web>
<location path="RankList.aspx">
<system.web>
<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312"/>
</system.web>
</location>
</configuration>
出現修改樣式無效時通常需要做下面的幾步:
确認所修改的樣式檔案是否是目前頁面的樣式檔案(多個環境的情況)
确認檔案中的路徑是否正确(可能手誤多寫或少寫)
如果上面兩點都确認沒問題或隻是一部分樣式失效,基本可以确定是檔案的編碼問題
大家都知道使用“UTF-8”比“GB2312”跨平台的相容性更好,卻不一定知道檔案的編碼跟檔案編碼的申明不是一回事,以為隻要申明了檔案的編碼類型就是改了檔案的編碼,導緻很多時候隻是簡單的申明了檔案的編碼類型,而并沒有真的修改檔案編碼類型,當浏覽器以申明的編碼類型去解析檔案時,由于檔案的實際編碼跟申明不同,出現解析不正确的問題。
以上問題如何産生呢?
隻修改了申明,沒有儲存與申明對應的檔案編碼類型
在不同檔案間拷貝時,兩個檔案間的編碼不一樣
上面的問題隻要再另存一份,選擇跟申明一樣的編碼類型即可解決。
如果上面的方法都沒有作用的話,可能就是編輯軟體的問題啦,建議換個編輯器試試。
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字元的一種多位元組編碼,它對英文使用8位(即一個位元組),中文使用24為(三個位元組)來編碼。UTF-8包含全世界所有國家需要用到的字元,是國際編碼,通用性強。UTF-8編碼的文字可以在各國支援UTF8字元集的浏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載下傳IE的中文語言支援包。
GBK是國家标準GB2312基礎上擴容後相容GB2312的标準。GBK的文字編碼是用雙位元組來表示的,即不論中、英文字元均使用雙位元組來表示,為了區分中文,将其最高位都設定成1。GBK包含全部中文字元,是國家編碼,通用性比UTF8差,不過UTF8占用的資料庫比GBD大。
GBK、GB2312等與UTF8之間都必須通過Unicode編碼才能互相轉換:
對于一個網站、論壇來說,如果英文字元較多,則建議使用UTF-8節省空間。不過現在很多論壇的插件一般隻支援GBK。