(已解决)JavaWeb中HttpServletRquest中文乱码问题
问题
前端页面如下所示:
<!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);
}
- 服务器端设置
在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");
// 业务逻辑处理...
}
- JSP页面设置
在JSP页面中,可以通过page指令设置页面的编码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- 那当服务器为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
更多推荐


所有评论(0)