同一页面引入多个JS文件的编码问题
来源:互联网 发布:淘宝网软牛皮女包 编辑:程序博客网 时间:2024/05/16 08:25
原来只是觉得IE解析HTML文件的时候,需要知道其传输编码,才能正确处理,而从来没有在意过JavaScript文件的编码问题。结果今天发现同一页面中的多个JavaScript文件如果保存编码不同,也会有出错的问题。这个一般怎么会遇到呢?
原来写的js文件,从来没有关心过他们的编码问题。可是后来不知怎么的,发现一些单独都好使得文件,被同时引用到一个页面中时,就错误不断,根本不能执行。Debug半天,原来是文件编码问题搞得鬼。
一般我们在中文OS中保存文本文件,默认都是一GB2312编码保存的,比如VS.NET 2003,2005都是这样。可是当我们在脚本代码中写有"©"这些符号后,保存文件会提示让你保存为Unicode格式。如果你不加理会,仍然保存为GB2312,那么下次打开这个文件你会发现"©"变成"?"@_@。这样的字符还有一些,比如在Windows中的高位ASCII字符,它们的Unicode定义就是一些比较怪异的字符,如果用GB2312强行存这些字符,打开后会被两两合并为汉字或成为乱码。
回到我们脚本文件编码的问题上来,如果我们在同一个页面中引用多个JavaScript文件,而这些文件的保存编码又不同(有GB2312有又Unicode),就可能出错。当然不是总都出,这也是最要命的。由于对于7bit ASCII码,不管什么编码都是通用的,也不会有解码问题,可是如果文件里包含了汉字,就有可能出错了。
比如,GB2312保存的js文件: 可以在选择编码为GB2312的IE中正确的被引用。
Unicode编码保存的js文件: 可以在选择编码为Unicode的IE中正确的被引用。
而这两个文件在下列引用中,不管怎么选择IE编码也是不能正确执行结果:(
不过如果js中只有低位ASCII字符,不同编码的文件引用到一个页面不会有问题。
测试文件下载
原来写的js文件,从来没有关心过他们的编码问题。可是后来不知怎么的,发现一些单独都好使得文件,被同时引用到一个页面中时,就错误不断,根本不能执行。Debug半天,原来是文件编码问题搞得鬼。
一般我们在中文OS中保存文本文件,默认都是一GB2312编码保存的,比如VS.NET 2003,2005都是这样。可是当我们在脚本代码中写有"©"这些符号后,保存文件会提示让你保存为Unicode格式。如果你不加理会,仍然保存为GB2312,那么下次打开这个文件你会发现"©"变成"?"@_@。这样的字符还有一些,比如在Windows中的高位ASCII字符,它们的Unicode定义就是一些比较怪异的字符,如果用GB2312强行存这些字符,打开后会被两两合并为汉字或成为乱码。
回到我们脚本文件编码的问题上来,如果我们在同一个页面中引用多个JavaScript文件,而这些文件的保存编码又不同(有GB2312有又Unicode),就可能出错。当然不是总都出,这也是最要命的。由于对于7bit ASCII码,不管什么编码都是通用的,也不会有解码问题,可是如果文件里包含了汉字,就有可能出错了。
比如,GB2312保存的js文件:
var str = '这是一个GB2312编码文件。';
var description = 'this file saved as GB2312 encoding.';
var description = 'this file saved as GB2312 encoding.';
Unicode编码保存的js文件:
var strW = '这是一个Unicode编码文件。';
var descriptionW = 'this file saved as Unicode encoding.';
var descriptionW = 'this file saved as Unicode encoding.';
而这两个文件在下列引用中,不管怎么选择IE编码也是不能正确执行结果:(
<html>
<head>
<title>Test Encode</title>
<script src="Unicode.js" language="javascript"></script>
<script src="GB2312.js" language="javascript"></script>
</head>
<body>
<script language="javascript">
alert(strW + '\r\n' + descriptionW);
alert(str + '\r\n' + description);
</script>
</body>
</html>
<head>
<title>Test Encode</title>
<script src="Unicode.js" language="javascript"></script>
<script src="GB2312.js" language="javascript"></script>
</head>
<body>
<script language="javascript">
alert(strW + '\r\n' + descriptionW);
alert(str + '\r\n' + description);
</script>
</body>
</html>
不过如果js中只有低位ASCII字符,不同编码的文件引用到一个页面不会有问题。
测试文件下载
- 同一页面引入多个JS文件的编码问题
- 同一页面引入多个JS文件的编码问题
- 同一页面引入多个JS文件的编码问题
- asp.net页面引入的js控件编码问题
- js实现的同一页面多个分页
- js实现,同一页面多个倒计时
- js实现,同一页面多个倒计时
- jsp页面引入js文件问题
- 在页面引入js文件冲突问题(注意js文件导入的顺序)
- 多个进程对同一文件写入的问题
- 对于同个页面引入不同js文件中重写window.onbeforeunload方法的总结
- 页面编码和js 文件调用问题
- js +html 同一页面,多个全选 /全不选
- 用js实现同一页面多个不同运动效果
- 织梦同一页面调用多个相同的js联动菜单
- JSP引入js、CSS文件的问题
- 一个js文件引入其他多个常用js文件的使用方法及适用范围
- javascript 全局变量(同一jsp文件下,多个js文件可共用的变量)
- 字符串练习1
- gcc常用命令注解
- readdirectorychangesw 链接错误 undeclared identifier 解决方法
- 模式设计学习心得
- Java调用XML的方法:DocumentBuilderFactory
- 同一页面引入多个JS文件的编码问题
- velcoity基础
- Bash-读取文件行数
- 嵌入式linux入门学习内容指南
- 伺服舵机带参方向控制
- java中函数的认识以及格式-作者:逝秋
- Spring注解
- 降序数排列及变形
- Number of Processes(Workers) for Concurrent Manager