Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)delv
published in(发表于) 2014/1/23 3:11:52
ASP.NET开发经验(1):解决ASP.NET与CSS中定义的中文字体名的冲突_[Asp.Net教程]

ASP.NET开发经验(1) --- 解决ASP.NET与CSS中定义的中文字体名的冲突_[Asp.Net教程]

最近做了一个 ASP.NET 的文档管理程序,有点类似于简化的 SharePoint Portal Server 2001,有兴趣的可以看看程序运行的截图 (多图)。

在开发过程中,陆续碰到和解决了一些不常见的问题,我会慢慢把这些问题和解决的办法都写出来。代码目前还有点乱,过两天再整理一下,请 Ma QiJGTM'2004kaneboy 等几位高手帮我做一下 Code Review 或 Refactory。


前两天,在修改 ASPX 页面时,发现一个奇怪的问题,链接的CSS 文件里指定的其它设置都管用,就是字体名称设置不管用,如果直接在 ASPX 页面中指定字体名称(Style="font-family:宋体")就是正常的。


为了测试,我用 FrontPage 新建了一个 HTML 页面并链接了CSS 文件,页面显示正常,但当我把 HTM 后缀改成 ASPX 后,又失效了。


难道是 ASPX 和 CSS 有冲突? 可这两个东西风马牛不相及呀,于是仔细对比 HTM 和 ASPX 页面的源码,没有发现任何不同的地方,真是百思不得其解。最后终于无意中发现,HTM 页面和 ASPX 页面的编码方式不一样,HTM 是 GB2312 ,ASPX 是 UTF-8(即使其中含有 的标记)。


到此时我才明白,原来就是因为 ASPX 的输出编码为 Unicode,在处理 CSS 中的中文字体名(如“宋体”,“黑体”)时出错了错误,导致不能正确显示指定的字体。


处理办法:


1) 将 ASP.NET 的默认编码方式由 UTF-8 改为 GB2312 ;


不过,现在都搞全环化、国际化,还是用 UTF-8 好。


2) 将 CSS 文件中的中文字体名变为英文名称;


如 "Font-Family: 宋体" 改为 "Font-Family: SimSun" ,其它字体的英文名称如:SimYou 幼圆; SimHei 黑体; SimKai 楷体; SimFang 仿宋; SimLi 隶书等。


3) 将 CSS 文件中的中文字体名改为 Unicode 表示(\u...)


此种方法未试验,不知是否可行。


至于为什么我一定要用中文字体呢,原因是中文字体是等宽的,在处理页面时,能很精确控制元素的宽度,这样有利于版面的设计,我对软件界面的要求是很高的 笑脸


来源:moslem的blog







If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759