在web页面之间传递参数是必不可少的,在两个页面url之间传递中文参数是个麻烦是事情,因为在中文在url传递过程中需要将中文参数转换为gb2312格式,例如下面kw=后面传递就是中文参数,将其转码为gb2312,中文就是麻烦
1. 该如何在jsp页面中将中文转码为gb2312呢?
首先需要在jsp页面中引入java.net.*包
<%@ page language="java" import="java.util.*,java.net.*" pageEncoding="utf-8"%>
然后将ACTION传递过来的中文进行转码
其中的encodeTerm就是将中文转码后的字符串了。
<%
String term = (String)request.getAttribute("coursePlan.cp_term"); //获取学期信息
String encodeTerm = URLEncoder.encode(term,"gb2312");//将学期信息转换编码,用于url传递
%>
2. 该怎样将这种字符编码格式转化为中文呢?
<%
String tempTerm = URLDecoder.decode(request.getParameter("term"),"ISO-8859-1");
String term = new String(tempTerm.getBytes("ISO-8859-1"),"gb2312");
%>
其中tempTerm是获取到的gb2312的编码格式,term就是将其编码又转化为了中文格式了,可以在页面显示。
也通过这种方式对jsp页面传递在action中的gb2312编码转换为中文(需要这种情况,例如url传递的中文参数需要action向数据库中查询中文参数)