乱码问题十分烦人,今天在写一个登陆的demo时,表单中需要提交的中文姓名,如下代码
<form action="success.jsp" name="successForm" method="post">
姓名:<input type="text" name="username" /><br/>
密码:<input type="password" name="password" /><br>
擅长:<br>
<input type="checkbox" name="fab" value="java技术" >Java技术<br>
<input type="checkbox" name="fab" value="c" >C语言<br>
<input type="checkbox" name="fab" value="database" >数据库技术<br>
<input type="checkbox" name="fab" value="web" >Web技术<br>
<input type="submit" value="提交">
</form>
另有一个success.jsp 登陆后跳转至此
<%
String username = request.getParameter("username");
String[] fabs = request.getParameterValues("fab");
%>
<%
out.println("用户名为:" + username);
if (fabs != null) {
out.println("擅长:" + "<br>");
for (String fab : fabs) {
out.println(fab + "<br>");
}
}
%>
为了解决乱码问题,可以添加一句
request.setCharacterEncoding("utf-8");
这样就可以显示中文了
还有一种情况就是在URL中的中文参数值如:
<a href="success.jsp?username=小羊">用户登录</a>
这种情况也会出现中文乱码的情况,解决的方法是修改tomcat的配置文件
找到tomcat的conf文件夹下server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
添加 URIEncoding=“utf-8”