jsp中文显示的小问题,请指教。
使用jsp,中文显示一致令人不舒服,常常问题出在字符集上,特别是有关数据库查询的。
自己做了个实验,也没总结出什末经验。希望高手能多多赐教。
从test1.jsp 中传数据给test2.jsp显示。
//-------------- test1.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<%
String name = "姓名";
int age = 23;
String GBKname = new String( name.getBytes("ISO8859_1"),"GBK");
String ISOname = new String( name.getBytes("GBK"),"ISO8859_1");
%>
<body>
name = <%=name%><br>
GBKname = <%=GBKname%><br>
ISOname = <%=ISOname%><br>
age = <%=age%><br>
<a href="test2.jsp?name=<%=name%>&GBKname=<%=GBKname%>&ISOname=<%=ISOname%>&age=<%=age%>">test2.jsp</a>
<form action="test2.jsp" method="post">
<input type="hidden" value="<%=name%>" name="name">
<input type="hidden" value="<%=GBKname%>" name="GBKname">
<input type="hidden" value="<%=ISOname%>" name="ISOname">
<input type="hidden" value="<%=age%>" name="age">
<input name="sum" type="submit" value="xx">
</form>
</body>
</html>
// -------------------test2.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<%
String name = request.getParameter("name");
String name_ISO_GBK = new String( name.getBytes("ISO8859_1"),"GBK");
String GBKname = request.getParameter("GBKname");
String GBKname_ISO_GBK = new String( GBKname.getBytes("ISO8859_1"),"GBK");
String GBKname_GBK_ISO = new String( GBKname.getBytes("GBK"),"ISO8859_1");
String ISOname = request.getParameter("ISOname");
String ISOname_ISO_GBK = new String( ISOname.getBytes("ISO8859_1"),"GBK");
String ISOname_GBK_ISO = new String( ISOname.getBytes("GBK"),"ISO8859_1");
int age = Integer.parseInt(request.getParameter("age"));
%>
<body>
name = <%=name%><br>
name_ISO_GBK = <%=name_ISO_GBK%><br>
GBKname = <%=GBKname%><br>
GBKname_ISO_GBK = <%=GBKname_ISO_GBK%><br>
GBKname_GBK_ISO = <%=GBKname_GBK_ISO%><br>
ISOname = <%=ISOname%><br>
ISOname_ISO_GBK = <%=ISOname_ISO_GBK%><br>
ISOname_GBK_ISO = <%=ISOname_GBK_ISO%><br>
age = <%=age%>
</body>
</html>
// ---------------------test2.jsp的结果显示如下:
name = ????
name_ISO_GBK = 姓名
GBKname = ??
GBKname_ISO_GBK = ??
GBKname_GBK_ISO = ??
ISOname = ????
ISOname_ISO_GBK = ????
ISOname_GBK_ISO = ????
age = 23
显示五花八门,而且结果也并非我想象。
在实际工作中,每次要进行入库查询时,都要把sql语句显示出来,看看中文是否有问题。实在是受不了了,难道没有规律吗?