引用外部js乱码
在web开发中我们一般都会不可避免的使用js。我们可以将js代码直接放在页面中即通过内部使用js。但是为了给页面良好的"瘦身"我们一般都会将js代码放在外部,然后通过src引用。这个时候我们就需要注意一个问题:编码问题。如果web页面也js采用不同编码,这个时候就会出现乱码。(内部使用js不需要注意编码问题,因为他们采用的是同一种编码)
对于大多数的web页面,我们一般都是使用如下两种编码:UTF-8、GB2312。所以我们只需要统一页面和js编码就可以解决乱码问题:
对于GBK页面引用编码为UTF-8编码的JavaScript文件如果出现乱码问题,可以使用下面的代码来解决
<script type=”text/javascript” src=”test.js” charset=”utf-8″></script>
同样在UTF-8页面中引入编码为GBK的JavaScript文件乱码问题了,可以使用如下方式:
<script type=”text/javascript” src=”test.js” charset=”gb2312″></script>
此方法是对于在js文件中出现汉字中文,以及其他容易造成在GBK与UTF-8编码错误字符的时候使用,
注:Web页面和js文件最好是使用同一种编码,对于纯英文的就不需要了,如果编码已经统一,引入的js文件中文依然乱码,则加入charset=”″声明就好。
javascript中的3个编码函数
escape/unescape
除了ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码;
因此如果想对URL编码,最好不要使用此方法;
escape()适合对url的参数进行编码。
encodeURI/decodeURI
用于编码整个URL,因为URL中的合法字符都不会被编码转换;
进行url跳转时可以整体使用encodeURI。
encodeURIComponent/decodeURIComponents
对url的参数编码,特别在参数也是一个url的情况,如果不编码会影响整个url跳转。
例如:document.write('<a href="http://passport.baidu.com/?logout&aid=7&
encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');
在向后端传值时,参数存在特殊字符时,我们一般使用这种编码方法