js的编码有三个函数
1、escape()函数
escape(string):该方法将ASCII字母和数字、标点符号(* @ - _ + . /)以外其他所有的字符转化成Unicode(十六进制)编码值,并在编码值前加上"%u",通过将特殊字符转换成Unicode编码值可以避免因为编码的字符集不兼容而出现的信息丢失问题。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
escape("abc 一二三") //abc与一二三中间有空格
输出结果:abc%20%u4E00%u4E8C%u4E09
abc原样不变, 空格转化为%20 一对应:%u4E00
2、unescapse()函数
对escape()函数返回的unicode编码解码
unescape("abc%20%u4E00%u4E8C%u4E09 ")
输出结果:abc 一二三
3、encodeURI()函数
与escape()相比,encodeURI是真正的js用来来对url编码的函数,它可将整个url中的字符(除一些特殊的字符,如!#$&'()*+-,;/?=@_~a-zA-Z)进行UTF-8编码,在每个码值前加上“%”
encodeURI("abc 一二三")
输出结果:abc%20%E4%B8%80%E4%BA%8C%E4%B8%89
4、decodeURI()函数
对encodeURI编码进行解码
decodeURI("abc%20%E4%B8%80%E4%BA%8C%E4%B8%89")
输出结果:abc 一二三
Java的URL编码及解码
java.net.URLEncoder.encode("abc 一二三", "utf-8");
java.net.URLDecoder.decode("abc%20%E4%B8%80%E4%BA%8C%E4%B8%89", "utf-8");