AJAX 중국어 문제는 두 가지 범주로 나뉩니다.
1) 송신 경로의 파라미터가 중국어로 되어 있고, 서버 부분에서 수신한 파라미터 값이 깨져있습니다.
예를 들어:
var url="a.jsp?name=샤오 리";
xmlHTTP.open("게시물",url,true);
해결책:
javascript에서 제공하는 escape() 또는 encodeURI() 메소드를 사용하십시오. 예를 들면 다음과 같습니다.
고객:
var url="a.jsp?name=샤오 리";
url=encodeURI(url);
url=encodeURI(url); //2번, 매우 중요합니다. [이유는 정확히 모르겠습니다.]
/************************************************/
어떤 사람들은 var url="a.jsp?name=escape("Xiao Li")";
이 기능은 encodeURI 메소드와 유사합니다.
/************************************************/
xmlHTTP.setrequestheader("cache-control","no-cache");
xmlHTTP.setrequestheader("Content-Type","application/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//전송된 데이터의 인코딩 형식 지정
xmlHTTP.open("게시물",url,true);
서버측:
문자열 이름 = request.getParameter("name");
이름 = java.net.URLDecoder.decode("이름", "UTF-8");
2) 반환된 responseText 또는 responseXML 값에 중국어 문자가 포함되어 깨졌습니다. 이유: AJAX는 서버 세그먼트에서 보낸 데이터가 UTF-8 형식이 아닌 경우 UTF-8 형식에 따라 해당 값을 디코딩합니다. , , 경우 responseText 또는 responseXML에서 수신한 값이 왜곡될 수 있습니다.
해결 방법: 서버에서 데이터를 보내는 형식을 지정하십시오.
jsp 파일에서:
response.setContentType("text/text;charset=UTF-8");//반환되는 것은 txt 텍스트 파일이거나
response.setContentType("text/xml;charset=UTF-8");//xml 파일 반환
요약: 1) Ajax에서 제출한 데이터의 형식은 기본적으로 utf-8이며, 서버 측에서 수신할 때는 java.net.URLDecoder.decode("", "UTF -8") 메서드를 사용하여 디코딩합니다.
2) xtmlhttp가 반환하는 데이터의 기본 문자 인코딩은 utf-8이므로 서버가 클라이언트에 데이터를 보내려고 할 때 위의 방법으로 여전히 잘못된 문제를 해결할 수 없으면 utf-8 인코딩도 사용해야 합니다. jsp, htm 변환을 시도할 수 있으며, Java 파일은 UTF-8 인코딩 형식으로 저장됩니다.
즉, 전면 및 후면 데이터 상호 작용 모두에 UTF-8 인코딩을 사용하면 됩니다.
이 기사는 CSDN 블로그에서 가져온 것입니다. 재인쇄할 때 출처를 표시하십시오: http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx