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>