问题
前端页面如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<body>
	<form action="RequestTestServlet" method="post">
		姓名: <input type="text" name="name" style="width: 150px" />
		年龄: <input type="text" name="age" style="width: 150px" />
		<input type="submit" value="提交" />
	</form>
</body>
</html>

后端Servlet中对应的获取代码如下:

protected void doPost(...) throws ...{
	// 设置请求的编码为UTF-8
    request.setCharacterEncoding("UTF-8");
    // 设置响应的编码为UTF-8
    response.setCharacterEncoding("UTF-8");
    // 设置响应的内容类型和编码
    response.setContentType("text/html;charset=UTF-8");
  String name = request.getParameter("name");
  String age = request.getParameter("age");
  System.out.println("姓  名: " + name);
  System.out.println("年  龄: " + age);
}

  1. 服务器端设置
    在Servlet中,可以通过以下方式设置请求和响应的编码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 设置请求的编码为UTF-8
    request.setCharacterEncoding("UTF-8");
    // 设置响应的编码为UTF-8
    response.setCharacterEncoding("UTF-8");
    // 设置响应的内容类型和编码
    response.setContentType("text/html;charset=UTF-8");
    
    // 业务逻辑处理...
}
  1. JSP页面设置
    在JSP页面中,可以通过page指令设置页面的编码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  1. 那当服务器为Tomcat V9.0时,又要如何解决url中的中文参数乱码问题?主要有两种方式:
    这里强调一下,tomcat可能出现中文乱码的地方有三个,如下图所示:
    在这里插入图片描述
    接着,按照下面的操作彻底修改上述三个位置中文乱码的问题!
    修改tomcat的conf下配置文件

1、修改logging.properties

将以下所有位置的GBK均改成UTF-8
在这里插入图片描述
2、修改server.xml
在这里插入图片描述
修改IDEA中的设置
1、Java Complier 中添加 -encoding utf-8
在这里插入图片描述
2、Code style——>File encodings
在这里插入图片描述

修改tomcat在idea中的配置
在这里插入图片描述
我就是在这一步解决的,试过各种办法都没用,就差直接写JavaScript里写死请求头application/x-www-form-urlencoded:charset=utf-8了
如果还没有解决,请继续以下步骤

修改IDEA本身的配置
在这里插入图片描述
添加 -Dfile.encoding=UTF-8
在这里插入图片描述
spring本身乱码问题的设置

在web.xml文件中添加如下代码

 <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

转载自https://blog.csdn.net/junR_980218/article/details/124399026?fromshare=blogdetail&sharetype=blogdetail&sharerId=124399026&sharerefer=PC&sharesource=2301_76692661&sharefrom=from_link

如果tomcat为7版本可以参考这篇(或者升级版本,8版本之后支持utf-8)https://lizishudd.blog.csdn.net/article/details/104760509?fromshare=blogdetail&sharetype=blogdetail&sharerId=104760509&sharerefer=PC&sharesource=2301_76692661&sharefrom=from_link

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐