为什么从jsp取出中文出现乱码;
我在jsp中<input type="text" name="xm">,然后我的JAVA模块中提取用户输入的值.String xm=(String)request.getParameter("xm"),做了一个输出测试System.out.println("xm="+xm); 我输入“张三”,提交后,结果却是:xm=??????????
怎么会这样呢,我之前的模块都好好的。为什么这次会成这样。我已经在第一行声明了
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isELIgnored="false"%>
答案:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>获取input的内容</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<form action="test.jsp" method="post">
用户名:<input type="text" name="userName"/>
<br/>
<br/>
密 码:<input type="password" name="userPassword"/>
<br/>
<br/>
<input type="submit" value="登陆">
</form>
<%
String userName;
String userPassword;
userName = request.getParameter("userName");
userPassword = request.getParameter("userPassword");
if(userName==null||userName==""||userPassword==null||userPassword==""){
}
else{
userName = new String(userName.getBytes("ISO-8859-1"),"utf-8");
System.out.println(userName+" "+userPassword);
out.println(userName+"<br><br>"+userPassword);
}
%>
</body>
</html>
你试试我这个 ,有问题直接找我
其他:在取之前用这一句
request.setCharacterEncoding("UTF-8");
再取
request.getParameter("xm");
如果你用的是tomcat,乱码可能就是tomcat的原因,
tomcat总是以iso8859-1来编码的。你搜一下”tomcat 乱码“看看原因。 在你的servlet类里面的方法上写
request.setCharacterEncoding("UTF-8");
上一个:请问下,JSP中有专门的日期控件吗,就是在页面上可以点选日期的
下一个:jsp保持下拉列表上次选中的值