tomcat7解决jsp参数传递的中文乱码问题

解决jsp参数传递的中文乱码问题

制作人:全心全意

在jsp页面中,通过参数传递传递中文时,在显示参数值时中文内容变成了乱码。这是因为请求参数的文字编码方式与页面中的不一致造成的,所有的request请求都是ISO-8859-1的,而大多数页面采用的是UTF-8的编码方式。要解决此问题,只要将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个String对象,即可正确地显示出中文信息。

例:

t1.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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">
<title>解决中文乱码1</title>
</head>
<body>
	<a href="t2.jsp?name=张三&sex=男">中文乱码</a>
	<%-- 通过t1.jsp页面中的超链接向t2.jsp页面传递name和sex两个参数 --%>
</body>
</html>

t2.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!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">
<title>解决中文乱码2</title>
</head>
<body>
 	name参数的值为:<%=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") %><br>  
 	<%-- 通过String的构造方法使用指定的编码类型重新构造一个String对象(能正常显示中文) --%>
	sex参数的值为:<%=request.getParameter("sex") %>
	<%-- 中文显示乱码 --%>
</body>
</html>

  

posted @ 2018-08-29 21:58  全心全意_运维  阅读(1010)  评论(0编辑  收藏  举报