Java 왜곡 상황에 대한 여러 가지 해결 방법:
1. 서블릿에서 get을 통해 서버에 전달된 데이터를 가져올 때 왜곡된 문자가 나타납니다.
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("userName"); byte[] bytes = name.getBytes("ISO8859-1"); String newName = new String(bytes,"UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
분석: 캡슐화된 데이터를 가져오기 위해 doGet 메서드에 이름 변수를 정의합니다. 서버 클라이언트 데이터 userName에서 "ISO8859-1" 형식의 바이트 배열에 이름을 할당하고 마지막으로 이 바이트 배열을 UTF-8 형식의 새로 생성된 문자열 변수 newName에 할당합니다. newName은 정상적으로 작동할 수 있습니다. 표시된 데이터가 이렇게 번거로운 이유는 한 줄의 코드로 해결할 수 있는 직접적인 방법이 없기 때문입니다. 이 방법은 그냥 고정된 사용법으로 간주하면 됩니다.
2. 서블릿에서 post를 통해 서버에 전달된 데이터를 얻을 때 잘못된 문자가 나타납니다.
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //注意:post方式提交数据的乱码解决方式,放在getParameXXX方法之前 req.setCharacterEncoding("UTF-8"); //得到前台input框中name="username"和password="password"的value值 String username = req.getParameter("username"); String password = req.getParameter("password"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
분석: post 전달 모드에서 잘못된 문제를 해결하는 것은 매우 간단합니다. req.setCharacterEncoding("UTF-8) "); 이 코드 줄은 데이터를 얻기 전에 이 문장을 배치해야 한다는 점에 유의하세요.
3. 서블릿이 서버를 통해 클라이언트에 데이터를 응답할 때 왜곡된 문자가 나타납니다.
public class RegistServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //方式一: resp.setContentType("text/html;charset=utf-8"); //方式二: resp.setHeader("Content-type", "text/html"); resp.setCharacterEncoding("UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
분석: 위의 두 가지 방법은 적용 시 출력 방법 전에 작성해야 합니다. , 두 가지 방법이 동일한 효과를 갖기 때문입니다. 간단하고 일반적인 방법 1입니다.
4. HTML 또는 JSP 페이지가 클라이언트에 표시될 때 잘못된 문자가 나타납니다.
<head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>form表单</title> </head>
더 많은 Java 지식을 알고 싶다면 java 기본 튜토리얼 칼럼을 주목해주세요.
위 내용은 Java의 잘못된 코드 문제에 대한 몇 가지 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!