当前位置: 首页 > 图文教程 > 网页制作 > 心得技巧 > 网页前端分析:关于淘宝页面编码的疑惑

心得技巧
设计作品参考:有创意的美观大方的简历设计
产品设计:产品三要素三角模型
手机移动平台的UI界面设计:减少空间占用
B2C网站产品设计实例:简单的广告设计
设计理论:杂志的目录设计
用户体验设计:良好的站内搜索设计指导
设计作品参考:很具想象力的标志LOGO设计
用户体验:简单的用户研究的分析和总结
WEBJX收集11个优秀的在线表单服务网站
邮件设计与网页设计的巨大差别
优秀的交互设计应该是最愉悦的满足用户的需求
谈新版豆瓣首页交互设计:复杂网站的标签系统
GOOGLE用户体验设计师谈Google的十大设计原则
腾讯QQ产品经理谈互联网产品经理的素质
网页设计参考:50个激发你设计灵感的网站实例
WEBJX收集27个流行且别致的网站header设计实例
50个鼓舞人心的设计惊艳的iphone应用网站
淘宝网系统的前端安全规范
混乱的URL编码
WEBJX收集10个非常不错的旅游行业网站设计

心得技巧 中的 网页前端分析:关于淘宝页面编码的疑惑


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 114 ::
收藏到网摘: n/a

因为即将开始淘宝的项目,在前端方面必然要深入了解taobao ued规范,规范还是比较全的,只是对taobao.com的编码和字符集的选择有很多困惑,由于历史原因,taobao的页面编码是ASCII编码,字符集采用gb2312,这并无不妥,麻烦的仅仅是做代码开发的时候要抽出精力去对付复杂多元的字符集,比如在taobao首页是ASCII,页面的meta中指定的字符集是GB18030,但在window下,用firefox另存页面到本地后,发现meta字段的字符集变为gb2312,而且在ie中打开淘宝首页,浏览器认为的字符集是gb2312,但gb18030本身范围比gb2312要大,所以万一有越界字符出现,浏览器也会使用gb18030的字符集解释页面。



在纯粹的html中,这种相同编码字符集不同所带来的隐患通常会被越来越强大的A级浏览器hack掉,所以只要采用大致兼容的gb字符集,页面大概不会有异常。但当一个ascII码的html去引用utf编码的css或者js文件的时候,则必须指定引用文件的编码。但让人困惑的是,在taobao首页中却存在引用非标注编码的utf文件,而且不是个例,比如taobao首页尾部的tbra-fp.js,就没有指定其编码,
<script type="text/javascript" 
src="http://assets.taobaocdn.com/tbra/1.0/tbra-fp.js?
t=20090619.js"
></script>

而这里的tbra-fp.js却是utf8的编码,还好这个文件中只有英文,而且没有ajax相关的代码,音位utf和ascII在英文范围是可以兼通的,这个文件还算比较正确的能和首页协同工作。而在首页最下方的几个沙箱引用的几个js文件则规范的标注了charset=gb2312,
<script type="text/javascript" 
src="http://cn2.adserver.yahoo.com/a?
f=2121060025&p=cntaobao&l=TBT1&c=r"
 charset="gb2312"></script>

且这几个沙箱引用的js也确实是ASCII编码的文件,因为js中含有中文字符,为了避免乱码则必须html编码保持一致。上述这种文件编码不统一的现象在首页还有几处存在,大概是bug吧。



我们说gb系列的字符集都是基于ASCII的扩展,只是各个字符集的扩展程度不一致,而且不同的字符集可能会有重叠的现象,毕竟每一种扩展都是各个国家或者地区单独行动,比如gb2312和big5为了能显示简体和繁体中文分别对ASCII作各自扩充,而这两种扩充得到的字符集是不兼容的。也就是说一个包含简体和繁体字的文件,不可能同时使用gb2312和big5来同时正确显示所有的汉字。而且gb2312的汉字个数本来就不多,所以采用gb2312来处理中文是有很多隐患的。如果遇到前端和后台的字符集不一致的情况,会很麻烦。在taobao首页的源码中就有很多这种情况:




而调试编码和字符集是需要不小的时间和精力的。如果正站统一采用unicode字符集的话,大概就不会出现各种各样编码不一造成的开发成本浪费和软件隐患了。嗨,这也是做全站架构的时候需要考虑的事情,做开发的话只需去遵循规范就好了,只是在开发的时候细心一点,保证文件编码和字符集保持一致即可,无他。