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

心得技巧
网页制作心得:如何提高设计的效率
为了用户体验而牺牲用户体验?
交互设计指南:一次点击
符合用户情感设计 QQ2010个性皮肤设计过程
用户体验UE在中国的发展
用户体验设计:关于人物角色的研究方法
交互设计:交互组件创新的四种常见方式
网页布局设计:使用数学中的模数精确布局
网站设计参考:25个在设计中彰显创意的电子商务网站
网页设计中最有灵感的幻灯效果设计
互联网产品设计思想:不一样的简洁
Chrome浏览器:独具一格的UI体验
最应该尽快规范设计的元素:超级链接
视觉设计:关于像素艺术的种类和形式
设计参考:27个独具创意的网站导航设计
Webjx收集非常不错的网站排版设计图
网页设计参考:紫色风格网站设计实例
免费的15个非常出色的WEB设计工具与素材
交互设计理论:浅谈信息可视化
互联网产品设计:体会把玩猜测花样设计

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-01   浏览: 101 ::
收藏到网摘: 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字符集的话,大概就不会出现各种各样编码不一造成的开发成本浪费和软件隐患了。嗨,这也是做全站架构的时候需要考虑的事情,做开发的话只需去遵循规范就好了,只是在开发的时候细心一点,保证文件编码和字符集保持一致即可,无他。