JSP基础——关于中文乱码问题

时间:2024-10-19 09:35:20

乱码问题十分烦人,今天在写一个登陆的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”