request.getParameter();乱码

request.getParameter();乱码

用request.getParameter();获取到的中文姓名是乱码,页面已经设置utf-8

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
慕粉1716346218 2018-02-07 10:29:26

我遇到的问题和你差不多,无论是从前端js->servlet还是servlet返回数据给js,都遇到了中文乱码,经过一系列的查找资料,给出以下解决方案,希望可以帮到你(代码经过简练):

首先在doGet的request获取数据之前,写入request.setCharacterEncoding("utf-8");这样能够保证你接收到的数据不会中文乱码,最后进行到最后一步:

response.getOutputStream().write(JSONObject.toString().getByte("UTF-8"));

getByate的时候传入参数utf-8,这样两个一起就能够使得js->servlet和servlet->js不乱码;

但是为了保险起见,response.getCharacterEncoding("utf-8");这些东西还是要写上去的,因此可以在src中新建一个包,新建一个类,重写doGet方法,然后把:

request.setCharacterEncoding("UTF-8");

response.setContentType("text/json");

response.setCharacterEncoding("UTF-8");

统统写入方法中,最后在需要使用的servlet中继承这个类,doGet方法中调用super.doGet()即可

  • 写错了,是response.setCharacterEncoding("UTF-8");
    2018-02-07 10:38:38
6451901 2017-10-22 22:43:32

1,在整个项目设置编码值为utf-8

2,在单个有中文的jsp页面设置utf-8

3,设置request.setCharacterEncoding("utf-8");

    response.getCharacterEncoding("utf-8");

4,设置jsp头部<%@ page contentType="text/html;charset=UTF-8" language="java" %>

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java Web基础入门2018版
  • 参与学习       716    人
  • 提交作业       185    份
  • 解答问题       1363    个

会Java?懂前端基础?想学后台开发?那么,赶快来学习《Java Web入门》路径吧。本路径主要介绍Java Web的基础知识,并配有大量案例,定会让你收获多多!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师