編碼導致 html和aspx 樣式差異,變形

iDotNetSpace發表於2010-06-08
前幾天做頁面,排好的html頁面複製到aspx頁面上就是會出現差異,比如字型定義無效,基本的表現就是怎麼改樣式都沒顯示或只有某些瀏覽器正常,搞了半天才發現是編碼問題,DW預設新建的檔案編碼是gb2312的,vs預設是utf-8的,時間原因也沒重新排,就在web.config的Configuration節點下對這個頁面單獨設定了編碼。

 

<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&gt 1 xml version="1.0"?>
 2 <configuration>
 3   <system.web>
 4     <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>
 5   system.web>
 6   <location path="RankList.aspx">
 7     <system.web>
 8       <globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312"/>
 9     system.web>
10   location>
11 configuration>
12 

 

 

出現修改樣式無效時通常需要做下面的幾步:
  

  •   確認所修改的樣式檔案是否是當前頁面的樣式檔案(多個環境的情況)
  •   確認檔案中的路徑是否正確(可能手誤多寫或少寫)
  •   如果上面兩點都確認沒問題或只是一部分樣式失效,基本可以確定是檔案的編碼問題


  大家都知道使用“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。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-664732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章