今天美工那边做好几个 HTML 页面发给我,我把那些都改成 ASPX ,发现一个奇怪的问题,显示出来的结果有点不一样,样式有点偏差。
于是仔细对比 HTML 和 ASPX 页面产生的源代码,没有发现任何不同的地方,真是百思不得其解。最后终于无意中发现,HTML 页面和 ASPX
页面的编码方式不一样,HTML 是 GB2312 ,ASPX 是 UTF-8(即使其中含有 <meta
http-equiv="Content-Type" content="text/html; charset=gb2312"> 的标记)。
才明白,原来就是因为 ASPX 的输出编码为 Unicode,在处理 CSS 中的中文字体名(如“宋体”,“黑体”)时才出错了错误,导致不能正确显示指定的字体。
处理办法:
1) 将 ASP.NET 的默认编码方式由 UTF-8 改为 GB2312 ;
2) 将 CSS 文件中的中文字体名变为英文名称;
如 "Font-Family: 宋体" 改为 "Font-Family: SimSun" ,其它字体的英文名称如:SimYou 幼圆; SimHei 黑体; SimKai 楷体; SimFang 仿宋; SimLi 隶书等。
其实若调用JS,也会出现类似的问题,所以,大家在页面设计上一定要统一好相应的编码格式。
实在解决不了,请使用如下方法:
修
改web.config中的<globalization>中的reponseEncoding属性为
gb2312,<globalization requestEncoding="gb2312"
responseEncoding="gb2312"/>。