jsp初学者,关于汉字显示成乱码问题。
html文件 validate.html
内容如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb5">
<title>输入验证</title>
</head>
<body>
<form method="post" action="validate.jsp">
<table>
<tr>
<td><font color="red">*</font>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td><font color="red">*</font>身份证号码:</td>
<td><input type="text" name="Card_id"></td>
</tr>
<tr>
<td></td>
<td align="right"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
jsp文件validate.jsp
<%@ page contentType="text/html" %>
<%
String Str_Name=request.getParameter("name");
String Str_Card_id=request.getParameter("Card_id");
%>
<%
if(Str_Name.trim().length()==0)
{
response.sendRedirect("validate_name_fail.html");
}
else
{
%>
您的姓名:<%=Str_Name%>
<%
}
%>
当在文本框“姓名”中输入字符串如:“大象”,显示结果如下“您的姓名:??”,请问怎么样才能正确显示
字符串“您的姓名:大象”
问题点数:100、回复次数:7Top
1 楼liangxuan1979(不贪)回复于 2003-01-04 07:55:42 得分 20
<%!
public String TranStrType(String str) throws Exception
{
try{
if(str==null)
return null;
else
{
str = new String(str.getBytes("ISO8859-1"));
return str;
}
}catch(Exception e){
return null;
}
}%>
<%
String Str_Name=TranStrType(request.getParameter("name"));
String Str_Card_id=request.getParameter("Card_id");
%>
Top
2 楼airlulu(airlulu)回复于 2003-01-04 09:19:30 得分 20
你用的是TOMCAT吧,
tomcat内部会把所有参数转为iso_8859_1,所以你需要把字符用iso_8859_1的格式来取回参数。
正如上面的:
str = new String(str.getBytes("ISO8859-1"),"gb2312");
Top
3 楼baitianhai(hong)回复于 2003-01-04 10:27:33 得分 10
在jsp页面加入:
<%@ page contentType= "text/html; charset=gb2312 " % >Top
4 楼baitianhai(hong)回复于 2003-01-04 10:31:19 得分 20
然后
String strUserName = new String(request.getParameter("user_name").getBytes("ISO-8859-1"), "gb2312");
Top
5 楼sluizin(冰封箭)回复于 2003-01-04 14:11:33 得分 10
就是字符集的问题。。。上面的几位都说了,我就不说了。
但,还有一事,就是如果你的jsp文件里用到了数据库方面的东西,如果连接,插入动作时,就不会出现汉字乱码的。你可以试试。。。。Top
6 楼shijainbo(水圆第四届唯一指定版主)回复于 2003-01-04 22:58:53 得分 10
把你validate.html文件中的第三行:
<meta http-equiv="Content-Type" content="text/html; charset=gb5">
改成:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
validate.jsp
文件第一行改成:
<%@ page contentType="text/html;charset=gb2312"%>Top
7 楼lovexing(爱鱼盛)回复于 2003-01-05 01:05:30 得分 10
如果想简体和繁体也能正确显示的话
就把上面提到的
str = new String(str.getBytes("ISO8859-1"),"gb2312");
中的gb2312改为GBKTop




