关于淘宝页面编码的疑惑

来源:uedmagazine 时间:2009-12-04 12:54:00 

因为即将开始淘宝的项目,在前端方面必然要深入了解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字符集的话,大概就不会出现各种各样编码不一造成的开发成本浪费和软件隐患了。嗨,这也是做全站架构的时候需要考虑的事情,做开发的话只需去遵循规范就好了,只是在开发的时候细心一点,保证文件编码和字符集保持一致即可,无他。

标签:淘宝,编码,gb2312,unicode
0
投稿

猜你喜欢

  • 教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码

    2023-08-29 12:08:18
  • 空行不空格式排版组织原理

    2010-05-03 14:46:00
  • Python调用Windows API函数编写录音机和音乐播放器功能

    2021-06-13 19:03:55
  • spring学习JdbcTemplate数据库事务管理

    2024-01-28 10:46:13
  • 有效网页表单的八条规则[译]

    2009-06-01 10:29:00
  • 如何做网页设计的10个小窍门

    2010-04-11 22:30:00
  • Python打工人必备之windows倒计时锁屏功能的实现

    2021-01-18 04:21:21
  • Django 登陆验证码和中间件的实现

    2021-08-12 10:26:18
  • javascript 删除dom对象的事件函数代码

    2024-04-19 09:48:02
  • python使用在线API查询IP对应的地理位置信息实例

    2021-12-10 23:59:16
  • 表格梳理解析python内置时间模块看完就懂

    2023-10-21 08:10:27
  • python读取各种文件数据方法解析

    2021-08-31 09:16:54
  • Python爬虫破解登陆哔哩哔哩的方法

    2021-03-28 14:17:40
  • 利用python实现数据分析

    2023-01-05 22:07:27
  • 详解Python实现URL监测与即时推送

    2023-12-29 08:18:35
  • Python自动化测试pytest中fixtureAPI简单说明

    2023-02-26 21:13:42
  • Python中pywifi模块的基本用法讲解

    2023-09-23 00:21:00
  • python用socket实现协议TCP长连接框架

    2022-05-08 00:22:47
  • 关于JavaScript中string 的replace

    2024-05-05 09:22:42
  • python中parser.add_argument()用法实例(命令行选项、参数和子命令解析器)

    2022-06-09 03:54:43
  • asp之家 网络编程 m.aspxhome.com