解决jsp中文乱码的两种方式

1、页面乱码

在jps页面中按照静态内容的方式添加中文内容时会出现乱码问题,之前以是setting里的编码方式的问题,改了setting之后发现问题并没有解决,之后在jsp的第一行使用page指令问题就解决了。如:<%@page pageEncoding=“utf-8” %>。

<%@page pageEncoding="utf-8" %>
<html>
<body>
<%--<h2>Hello Worldss!</h2>--%>
<form method="post" action="user.do?p=register">
    username:<input type="text" name="username"><br>
    password:<input type="text" name="password"><br>
    loves: <input type="checkbox" value="吃" name="loves"><input type="checkbox" value="乐" name="loves"><input type="checkbox" value="喝" name="loves"><input type="checkbox" value="玩" name="loves"><input type="submit" value="register">

</form>
</body>
</html>

2、 客户端到服务器的乱码

这种乱码出现在代码内部的逻辑处理时,输出这种乱码表现为"?"的形式,想要把它改为utf-8的编码模式需要在服务器接受request请求之后,处理请求之前加上request.setCharacterEncoding(“utf-8”);:

@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("utf-8");
    String p=request.getParameter("p");
    if ("register".equals(p)){
        doRegister(request,response);
    }
}

3、服务器到客户端的乱码

在服务器向客户端传中文值的时候可能会出现中文乱码,可以调用response.setContentType(“text/html;charset=utf-8”);同样,需要在接受response的最前面。

response.setContentType("text/html;charset=utf-8");

你可能感兴趣的:(解决jsp中文乱码的两种方式)