乱码产生的原因是数据发送方和接收方使用了不同字符集进行解析。解决乱码的思路是确保数据发送方和接收方统一使用utf-8编码。
中文乱码问题的产生原因
- 数据的发送方和接收方使用不同的字符集进行解析时,会产生乱码。
- 浏览器和服务器端编码不匹配是常见的乱码问题原因
package com.imooc.servlet.encoding;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/encoding/search")
public class SearchServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String keyword = request.getParameter("keyword");
System.out.println(keyword);
response.setContentType("text/html;charset=utf-8");
response.getWriter().println(keyword);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String keyword = request.getParameter("keyword");
System.out.println(keyword);
response.setContentType("text/html;charset=utf-8");
response.getWriter().println(keyword);
}
}