잘못된 HTML 게시물에 대한 해결 방법: 먼저 해당 코드 파일을 연 다음 게시물에서 전달된 ISO 인코딩 콘텐츠를 UTF-8 형식 콘텐츠로 변경하세요.
이 기사의 운영 환경: Windows 7 시스템, HTML5 버전, DELL G3 컴퓨터
HTML은 게시 방법을 사용하여 중국어 콘텐츠를 제출하고 오류 해결 방법이 깨졌습니다.
오늘 예제를 수행할 때 다음을 사용하세요. post 방식으로 양식을 제출하면, 중국어가 있는 경우 다른 페이지에 표시될 때 항상 잘못된 문자가 나타납니다.
그러나 제출 방식을 get로 변경하면 이 오류가 발생하지 않습니다.
자세한 오류는 아래 사진과 코드를 참조하세요.
HTML 코드:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>测试Cookie的设置和获取</title> 6 </head> 7 <body> 8 <form action="/TestTomcat/SetCookie" method="post"> 9 站点名:<input type="text" name="name"><br> 10 站点URL:<input type="text" name="url"><br> 11 <input type="submit" value="提交" /> 12 </form> 13 </body> 14 </html>
서블릿 코드, 일부 차단:
1 response.setContentType("text/html;charset=utf-8"); 2 3 PrintWriter out=response.getWriter(); 4 5 String title="设置Cookie实例"; 6 String docType="<! DOCTYPE html>\n"; 7 out.println(docType+ 8 "<html>\n"+ 9 "<head><title>"+title+"</title></head>"+ 10 "<body bgcolor=\"#f0f0f0\">\n"+ 11 "<h1 align=\"center\">"+title+"</h1>\n"+ 12 "<ul>\n" + 13 " <li><b>站点名:</b>" 14 + request.getParameter("name") + "\n</li>" + 15 " <li><b>站点 URL:</b>" 16 + request.getParameter("url") + "\n</li>" + 17 "</ul>\n" + 18 "</body></html>");
Error:
처음에는 코드 블록이 잘못된 위치에 배치된 줄 알고 doPost에 위 코드를 넣어서 시도해 보았습니다. . 이 오류가 계속 발생합니다.
그렇다면 포스트 방식으로 중국어를 전송하는 방법은 무엇일까요?
정보를 검색하여
게시물로 제출
이 경우 response.setCharacterEncoding이 영향을 미칩니다. response.setCharacterEncoding이 설정되지 않은 경우 값은 null이며 다시 iso-8859-1이 기본적으로 사용됩니다. 인코딩(디코딩).
브라우저는 자체 페이지의 인코딩 형식을 시작 인코딩 형식으로 사용하며, 문자를 바이트로 인코딩하여 전송합니다. Tomcat의 경우 Tomcat은 재인코딩(디코딩) 형식을 방해하지 않습니다. response.getCharacterEncoding이 null인 경우 iso-8859-1은 기본적으로 문자를 다시 인코딩(디코딩)하는 데 사용됩니다. 설정된 경우 문자는 설정된 인코딩 형식에 따라 다시 인코딩(디코딩)됩니다.
POST는 단일 바이트 데이터를 전송하므로 POST에서 전송되는 데이터 인코딩은 ISO-8859-1 단일 바이트 데이터이므로 영어와 숫자가 왜곡되지 않습니다. 이 경우 필터 및 물론, request.setCharacterEncoding()도 유효하지 않습니다. 왜냐하면 setCharacterEncoding의 원리는 필터의 원리와 동일하기 때문입니다.
위 문제를 처리하는 올바른 방법은 다음과 같습니다.
String nameStr=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
게시물을 전달하세요. 넘어오는 ISO 인코딩된 콘텐츠는 UTF-8 형식의 콘텐츠로 변경된 후 출력됩니다.
추천 학습: "HTML 비디오 튜토리얼"
위 내용은 HTML 게시물이 깨졌을 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!