java页面用request.getParameter获取jsp页面表单提交的数据时发生乱码怎么解决

时间:2022-11-16 06:53:16
我已经在最前面加上了request.setCharacterEncoding("utf-8");但还是不行。请问该如何解决

10 个解决方案

#1


String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

#2


引用 1 楼 w269000710 的回复:
String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

这样也不行

#3


在接收参数时要先进行编码在进行获取
处理 Request 接收参数的中文乱码问题
POST请求的解决方案:
request.setCharacterEncoding(“UTF-8”);  --- 一定要在接收参数之前设置编码就OK.

GET请求的解决方案
       使用String的构造方法:
String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

Response响应中文乱码的处理
response.setContentType("text/html;charset=UTF-8");



#4


写一个filter

#5


用base64试试

#6


得看你的参数是get、还是post传,如果是get,那么参数是在url中的,需要通过js来处理,如果是post,通过上面说的设置request编码即可。

#7


该回复于2018-01-11 10:23:16被管理员删除

#8


先看看你的页面编码是什么,如果编码和后台匹配就检查一下你的乱码类型。基本的解决方式楼上都提到了应该是能解决你的问题的。

#9


tomcat的配置文件server.xml里面 加一下 URIEncoding='utf-8' 
    <Connector port="8080" protocol="HTTP/1.1" URIEncoding='utf-8' 
               connectionTimeout="20000"
               redirectPort="8443" />

#10


三楼的办法很好啊,你可以按照以下方法逐个实验:
1、在接受参数之前,加上request.setCharacterEncoding(“UTF-8”);
2、对接收的参数进行重新编码:String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
3、响应也设置编码:response.setContentType("text/html;charset=UTF-8");
4、如果还是不行,你可以用浏览器调试一下:浏览器空白处右键--->检查---->选择Network---->再在页面上提交一次表单,观察提交的数据是否乱码,如果还有乱码那说明不是后台接收的乱码,可能是你浏览器编码设置的。你先在你的jsp页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试

#1


String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

#2


引用 1 楼 w269000710 的回复:
String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

这样也不行

#3


在接收参数时要先进行编码在进行获取
处理 Request 接收参数的中文乱码问题
POST请求的解决方案:
request.setCharacterEncoding(“UTF-8”);  --- 一定要在接收参数之前设置编码就OK.

GET请求的解决方案
       使用String的构造方法:
String n = request.getParameter("name");
String name = new String(n.getBytes("iso-8859-1"),"utf-8");

Response响应中文乱码的处理
response.setContentType("text/html;charset=UTF-8");



#4


写一个filter

#5


用base64试试

#6


得看你的参数是get、还是post传,如果是get,那么参数是在url中的,需要通过js来处理,如果是post,通过上面说的设置request编码即可。

#7


该回复于2018-01-11 10:23:16被管理员删除

#8


先看看你的页面编码是什么,如果编码和后台匹配就检查一下你的乱码类型。基本的解决方式楼上都提到了应该是能解决你的问题的。

#9


tomcat的配置文件server.xml里面 加一下 URIEncoding='utf-8' 
    <Connector port="8080" protocol="HTTP/1.1" URIEncoding='utf-8' 
               connectionTimeout="20000"
               redirectPort="8443" />

#10


三楼的办法很好啊,你可以按照以下方法逐个实验:
1、在接受参数之前,加上request.setCharacterEncoding(“UTF-8”);
2、对接收的参数进行重新编码:String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
3、响应也设置编码:response.setContentType("text/html;charset=UTF-8");
4、如果还是不行,你可以用浏览器调试一下:浏览器空白处右键--->检查---->选择Network---->再在页面上提交一次表单,观察提交的数据是否乱码,如果还有乱码那说明不是后台接收的乱码,可能是你浏览器编码设置的。你先在你的jsp页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试