중국어가 달린 코드의 문제는 실제로 매우 어려운 문제입니다. 특히 프론트 데스크에서 후면 책상으로 전송 된 후 문제가 어디에 있는지 모르겠습니다. 이제 우리는 Javaweb의 앞뒤 사무실에서 중국인의 문제를 해결하는 3 가지 방법을 공유합니다.
방법 1 : 방법 1 : 방법 1 : 방법 1 : : 방법 1 : : 방법 1 : : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : 방법 1 : 방법 1 : : 방법 1 : : 방법 1 : : 방법 1 : 방법 1 : 방법 1 : 방법 1 : :
Tomcat의 자체 인코딩은 ISO-8859-1의 형식이며 중국 인코딩과 호환되지 않습니다. 따라서 배경에서받을 때주의를 기울여야합니다.
동일한 형식을 사용하여 수신 한 다음 (ISO-8859-1)를 사용한 다음 파싱 가능한 인코딩 (UTF-8)으로 변환하십시오. 이런 식으로, 우리는 중국 호환 형식을 얻을 수 있습니다. 이 처리 후 프론트 데스크로 보내십시오. 참고 : 전경으로 보낼 때 설정해야합니다.
resp.setContentType ( "text/html; charset = utf-8"); // 인터페이스에서 garbled 중국어 텍스트 문제를 해결하기 위해 페이지의 문자 인코딩을 설정합니다.
보호 된 void service (httpservletRequest req, httpservletResponse resp) servletexception을 던지기
// garlled 코드를 해결하는 방법 중 하나 <span style = "white-space : pre"> </span> string name = req.getParameter ( "username"); </span> string pwd = req.getParameter ( "pwd"); // Tomcat 형식 (ISO-8859-1)을 사용하는 데 사용됩니다. <span style = "화이트 공간 : pre"> </span> string str = new String (b, "utf-8"); // utf-8을 사용하여 문자열 <span style = "화이트 공간 : pre pre. "> </span> resp.setContentType ("text/html; charset = utf-8 "); // 페이지의 문자 인코딩을 설정 <span style ="white-space : pre "> </span>
<span style = "화이트 공간 : pre"> </span> printwriter pw = resp.getwriter (); > <font size = '5px'color = 'red'> username : "+name+"pwd : "+pwd+"</font> </body> </html> "; <span style ="흰색 공간 : pre "> </span> pw.print (str1); printwriter pw = resp.getwriter (); String str1 ="<html> <body> <font size = '5px'color = 'red'> username : "+name +"pwd :"+pwd+"</font> </body> </html>";
방법 2 : 방법 2.
방법이 복잡하기 때문에 간단한 설정이 사용됩니다. 간단한 문장
req.setcharacterencoding ( "utf-8"); //이 메소드가 데이터를 읽는 데 사용되기 때문에 처음에는 작성해야합니다. 그렇지 않으면 데이터가 올바르지 않습니다.
이런 식으로, 이전처럼 번거로운 설정이 필요하지 않습니다.
Protected Void Service (httpservletrequest req, httpservletreponse resp) servletexception을 던지기, ioexception {// tomcat이 인코딩과 함께 제공되기 때문에 iso-8859-1 형식 // 두 개의 "더 번잡 한 req.setcharacterencoding ("utf-8. "); //이 메소드는 데이터를 읽는 데 사용되기 때문에 처음부터 작성해야합니다. 그렇지 않으면 데이터가 올바르지 않습니다. //이 방법을 읽으십시오. 이런 식으로 중국어를 읽을 수 있지만주의가 필요합니다. 양식은 <span style = "color :#ff0000;"> method = 'post'</span> resp.setContentType ( "text/html; charset = utf-8")에 의해 전송되어야합니다. 인코딩 페이지 문자열 name = req.getParameter ( "사용자 이름"); font size = '5px'color = 'red'> username : "+name+"pwd : "+pwd+"</font> </body> </html> "; pw.print (str1);
메소드 3 :
이것은 두 개의 달마를 기반으로 수정됩니다. 읽기 위해 인코딩 형식을 수정할 수 있지만, 사용자가 확실히 수정하지 않을 것이라는 점을 고려하면 사용자가 구성 파일을 수정할 수 있도록보다 일반적인 방법을 채택해야합니다. 즉, web.xml 파일은 web.xml의 내용을 수정해야합니다. 즉, 문자 인코딩은 XML에서 수신됩니다. XML 파일에 구성 매개 변수가 필요합니다.
코드는 다음과 같습니다.
<Servlet> <servlet-name> 인코딩 </servlet-name> <servlet-class> cn.hncu.com.encode.encodeing </servlet-class> <init-param> <param-name> charset </para m -이름> <param- value> UTF-8 </param-value> // 여기의 내용은 사용자가 채울 수 있습니다 (인코딩 형식이어야 함) </init-param> </servlet>
전경과 배경 사이의 교환은 web.xml 구성을 통해 수행되어야합니다.
public void init (servletconfig config) servletexception {charset = config.getInitParameter ( "charset"); // 초기화 매개 변수를 가져옵니다. 물론, charset은 글로벌 변수로 설정해야합니다. 후속 서비스 기능은 REQ.SetchAracterEncoding (charset)을 설정해야합니다.
req.setcharacterencoding (charset) pw = resp.getWriter (); String str1 = "<html> <body> <font size = 'red'> username :"+name+"pwd :"+pwd+"</font> </body > </html> "; pw.print (str1);
해결 된 렌더링 :
해결하기 전에 :
결의 후 :
프론트 데스크 코드 :
<body> <form action = "login"method = "post"> 로그인은 web.xml에서 구성되어 있으며 데이터의 사용자 이름을 백그라운드에서 읽을 수 있습니다 : <input type = "text"name = "username "/> <br/> 비밀번호 : <입력 유형 ="비밀번호 "이름 ="pwd "/> <br/> <입력 유형 ="제출 "value ="로그인 "/> </form> </body>
위의 것은 Javaweb의 앞뒤 사무실에서 중국인의 문제를 해결하는 세 가지 방법입니다. 특히 프론트 데스크에서 백엔드로 전송 된 후 중국어의 중국인 문제가 있습니다.