解决办法:
一般出现乱码都是在JavaScript里面跳转到哪个类,然后Java类中获取到这个参数的时候,参数值中文乱码。
这种情况下,一个非常实用的办法,JavaScript中可以这样写:
var url=........;
url=encodeURI(url); // 默认为UTF-8编码,两次encodeURI才不会乱码
url=encodeURI(url); //最重要的部分,两次调用encodeURI ,就是编码两次
然后再对应的Java类中, 获取这个参数的方法如下:
String name=request.getParameter("name");
name=URLDecoder.decode(name,"utf8");
这样就能解决乱码问题了,这种方法还没遇到过不能解决的乱码。
方法介绍:
encodeURI(): 该函数对传入字符串中的所有非(基本字符、Mark字符和保留字符)进行转义编码(escaping)。所有的需要转义的字符都按照UTF-8编码转化成为一个、两个或者三个字节的十六进制转义字符(%xx)。