servlet获取get请求的参数时,中文乱码

url是UTF-8的,servlet是GBK编码的,可是我在Servlet中设置了request.setCharacterEncoding("UTF-8");

可是request.getParamete("username")获取用户名还是乱码,不知道为什么?
我尝试设置request.setCharacterEncoding("GBK");时也是乱码,实在不知道哪里出问题了
弑天下
浏览 935回答 8
8回答

墨色风雨

以什么方式提交的?get,post? setCharacterEncoding只对post内容有效,get的话看看浏览器的编码是什么。servlet是gbk的,源码的编码格式不影响运行吧,都是英文。

万千封印

用户名密码是url还是body中,在body需要html Encode (decode),在url需要url encode(decode)。然后才是对应的编码!

当年话下

是ur,不过url中文显示正常,不是什么%之类的,这样也要encode和decode吗 

慕无忌1623718

 // 解决中文乱码问题 String encode = "UTF-8";if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0   || request.getHeader("User-Agent").toUpperCase().indexOf("TRIDENT") > 0 ) {// IE浏览器 encode = "GBK"; }String param1 = new String(request.getParameter("param1").getBytes("ISO-8859-1"), encode); String param2 = new String(request.getParameter("param2 ").getBytes("ISO-8859-1"), encode); 以上是针对兼容不同浏览器的乱码(目前只测试过:IE、360、google、mozillaFireFox); 如果您用的是tomcat,请在tomcat的server.xml配置文件中的connector元素标签添加URIEncoding = "UTF-8" 或者设置 request.setCharacterEncoding("UTF-8"),再修改tomcat的connector元素也行

森栏

我被这段代码坑了100遍了。不能解决所有问题。只能说一部分可以。

红颜莎娜

@wangjinming: 能把代码截个图出来看看吗
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java