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

night_never_up 2018-01-07 06:45:05
我已经在最前面加上了request.setCharacterEncoding("utf-8");但还是不行。请问该如何解决
...全文
655 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
三年喂 2018-01-08
  • 打赏
  • 举报
回复
在接收参数时要先进行编码在进行获取 处理 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");
night_never_up 2018-01-08
  • 打赏
  • 举报
回复
引用 1 楼 w269000710 的回复:
String n = request.getParameter("name"); String name = new String(n.getBytes("iso-8859-1"),"utf-8");
这样也不行
天空win 2018-01-08
  • 打赏
  • 举报
回复
得看你的参数是get、还是post传,如果是get,那么参数是在url中的,需要通过js来处理,如果是post,通过上面说的设置request编码即可。
hujianzhanghao 2018-01-08
  • 打赏
  • 举报
回复
用base64试试
bcsflilong 2018-01-08
  • 打赏
  • 举报
回复
写一个filter
天地炫舞 2018-01-08
  • 打赏
  • 举报
回复
三楼的办法很好啊,你可以按照以下方法逐个实验: 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页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试
stsg111 2018-01-08
  • 打赏
  • 举报
回复
tomcat的配置文件server.xml里面 加一下 URIEncoding='utf-8' <Connector port="8080" protocol="HTTP/1.1" URIEncoding='utf-8' connectionTimeout="20000" redirectPort="8443" />
Sunyiban 2018-01-08
  • 打赏
  • 举报
回复
先看看你的页面编码是什么,如果编码和后台匹配就检查一下你的乱码类型。基本的解决方式楼上都提到了应该是能解决你的问题的。
三年喂 2018-01-07
  • 打赏
  • 举报
回复
String n = request.getParameter("name"); String name = new String(n.getBytes("iso-8859-1"),"utf-8");

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧