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

2018-09-01 05:40:47来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

解决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>

  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Redis持久化

下一篇:序列化与ArrayList 的elementData的修饰关键字transient