芒果小站

/* 336x280*/

因特网通过各种编码字符集解决了多语种的兼容,由于历史原因,绝大部分中文网站使用 GBK 或者 GB2312 两种编码。由于网络应用趋于复杂化,越来越多的 Ajax 数据交互,硬生生的 GBK 编码已经不符合时代要求,所以说来说去 utf-8 还是王道。

在 IE6/IE7 浏览器下,外部 javascript 文件编码和页面编码不一致时,会导致变量未定义。听起来很骇人听闻?假如页面是 GBK 编码,页面包含以下代码:

Foo.init({...});

而其引用的外部 JS 文件是 utf-8 编码,文件包含以下代码:

var Foo = {};

这样一来伟大的 IE6/IE7 就瞬间挂了。它会友好地提示你 Foo 变量未定义。

这一切的一切,只是因为一个文件编码问题。外部资源如果未指定编码,则 IE6/IE7 下默认以页面编码为准。解决方案很简单,在外部 JS 文件引入时候加上 charset=”utf-8″ 属性就可以了。

<script charset="utf-8" src="mangguo.js"></script>

反之,如果外部资源是 GBK 编码,使用 charset=”gbk” 即可。

/* 336x280*/
版权所有,转载请注明出处。
转载自 <a href="http://www.mangguo.org/murder-caused-by-a-coding/" title="一个编码引发的血案" rel="bookmark">一个编码引发的血案 | 芒果小站</a>

已经有 10 条群众意见

  1. 万戈 /2011-10-08 23:18

    友好地提示。。。汗一个,IE6/IE7就从来没友好过 回应

    #1
  2. 宅男 /2011-10-09 08:18

    博主文章名字取得好哟!逛逛。。。 回应

    #2
  3. 芒果宅男/2011-10-09 09:39

    必须的,哈哈 回应

    #3
  4. 减肥药排行榜 /2011-10-09 20:16

    有那么严重吗? 回应

    #4
  5. 经典笑话 /2011-10-12 19:23

    搜索过来的,东西写得真不错,支持博主! 回应

    #5
  6. 老文 /2011-10-21 15:43

    哈哈,我被标题骗进来了… 回应

    #6
  7. @万戈/2011-11-04 19:56

    不知道为什么 用这个主题出错 回应

    #7
  8. ipage /2011-11-14 10:03

    UTF-8还是主流些 回应

    #8
  9. CC霜 /2011-11-15 16:40

    UTF-8好,中英文情况下都能使用。 回应

    #9
  10. 冬季流行服装 /2011-11-26 10:34

    我们做事一定 要小心,细节很重要呀 回应

    #10

我简单说几句

随机推荐

最新评论