前台使用url传递中文值,后端使用request.getParameter接收参数。在Firefox,Chrome和其他浏览器中没有问题。但是使用IE浏览器时,中文参数会出现乱码。
IE,Firefox和Chrome浏览器对URL的处理方式不同。浏览器在传输URL时必须对URL进行编码。 IE默认以UTF-8传输,而Firefox绝对未以UTF-8编码。 ,它可能采用ISO-8859-1编码,但Chrome似乎采用GBK编码。
如果未处理中文参数,则在每个浏览器以自己的编码方法将中文字符传输到服务器后,会出现各种编码方法,但是服务器只能使用一种编码方法对接收到的URL进行编码。解码。在这种情况下,将URl与中文一起使用时,使用与服务器使用相同编码方法的浏览器将不会出现问题,而其他浏览器也会出现问题。
解决方案:

我们可以在传递参数之前对它们自己进行编码,然后在获得参数时对其进行解码。这样,就可以得到我们想要的中文参数,并且可以很好地处理不同浏览器中的兼容性问题!
具体示例:
JSP页面:
var newUrl =“ checkLogin / lessonClassList?userName = Zhang San”;
newUrl = encodeURI(newUrl); //编码
$(“#dg”)。datagrid(“ options”)。url = newUrl;
$(“#dg”)。datagrid(“ reload”);
JAVA背景:

Stringname = request.getParameter(“ userName”);
字符串u_name = .URLDecoder.decode(name,“ UTF-8”); //解码
u_name =新字符串(u_name.getBytes(“ iso-8859-1”),“ utf-8”);
这样,我们得到的u_name是普通的中文参数,并且可以很好地处理不同浏览器中的兼容性!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-353852-1.html
晶~