若是在当前页面嵌入js,那么若是js文件中的编码方式和当前页面的编码方式不同,那么js中的中文将会出现乱码状况;html
使用Ajax中的http_request.open('GET',url,true)调用,URL的编码在IE下是操做系统的默认编码,而在Firefox下则是UTF-8编码。另外不一样的js框架可能对URL的编码处理也不同。 实际上JS中处理URL编码只要掌握是三个函数就能够前端
(1).escape(),这个函数将ASCII字母、数字、标点符号(* + - 。/ @ _)之外其余全部字符转化成Unicode编码值,而且在编码值前加上“%u”,该函数使用对应的解码函数unescape();注意,escape()和unescape()已经从ECMAScript v3标准中删除了,URL的编码能够用encodeURL和encodeURLComponent来代替。java
(2).encodeURL(),与escape()函数相比,encodeURL() 是真正JS用来对URL编码的函数,它能够将整个URL中的字符(除了一些特殊字符,如!#&'()*+,-./:;=?@_~0-9a-zA-Z)进行UTF-8编码,在每一个码值前加上“%”。相应的解码经过decodeURL()函数。数据库
(3).encodeURLComponent(),该函数比encodeURL()函数更加完全,它除了对!'()*-._!0-9a-zA-z这几个字符不编码以外,其余字符都编码,这个函数一般用于将一个URL当作一个参数放在另外一个URL中。服务器
备注:java端的URLEncoder和URLDecode与前端JS对应的是encodeURLComponent和decodeURLComponent。框架
除了URL和参数编码问题外,在服务器还有不少地方可能存在编码,如可能西尧都区XML、Velocity模板引擎、jsp或者从数据库中读取数据。jsp
<?xml version="1.0" encodeing="UTF-8"?>
services.VelocityService.input.encoding=UTF-8
<%@page contentType="text/html;charset=UTF-8"%>