天天看点

编码导致 html和aspx 样式差异,变形

 前几天做页面,排好的html页面复制到aspx页面上就是会出现差异,比如字体定义无效,基本的表现就是怎么改样式都没显示或只有某些浏览器正常,搞了半天才发现是编码问题,DW默认新建的文件编码是gb2312的,vs默认是utf-8的,时间原因也没重新排,就在web.config的Configuration节点下对这个页面单独设置了编码。

编码导致 html和aspx 样式差异,变形
编码导致 html和aspx 样式差异,变形

代码

<?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。