AJAX 중국어 난 장 판 문제 검토 및 해결

AJAX 중국어 문 제 는 두 가지 로 나 뉜 다.
1) 전송 경로 의 매개 변 수 는 중국어 로 되 어 있 으 며, 서버 세그먼트 에서 매개 변 수 를 받 는 값 은 난해 합 니 다.
예 를 들 면:
var url = "a. jsp? name = 샤 오리";
xmlHTTP.open ("post",url,true);
해결 방법:
javascript 에서 제공 하 는 escape () 또는 encodeURI () 방법 을 이용 합 니 다.
예 를 들 면:
클 라 이언 트:
var url = "a. jsp? name = 샤 오리";
url=encodeURI(url);
url=encodeURI(url); //두 번... 중요 해 요. [구체 적 으로 왜 그런 지 모 르 겠 어 요.]
/********************************************/
var url = "a. jsp? name = escape (" 샤 오리 ")" 라 고 쓰 는 사람 도 있다.
기능 은 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 ("post",url,true);
서버 쪽:
String name = request.getParameter("name");
name = java.net.URLDecoder.decode(name, "UTF-8");
2) 되 돌아 오 는 responseText 나 responseXML 의 값 에 중국어 가 포함 되 어 있 습 니 다.
이유: AJAX 는 responseText 나 responseXML 의 값 을 받 을 때 UTF - 8 형식 으로 디 코딩 합 니 다. 서버 세그먼트 에서 보 낸 데이터 가 UTF - 8 형식 이 아니라면 responseText 나 responseXML 의 값 을 받 는 것 은 어 지 러 울 수 있 습 니 다.
해결 방법: 서버 에서 데 이 터 를 보 낼 형식 을 지정 합 니 다.
서버 에서:
 
  
response.setCharacterEncoding("UTF-8");
response.setContentType("text/text;charset=UTF-8");// txt
response.setContentType("text/xml;charset=UTF-8");// xml
response.setContentType("application/json");// json
PrintWriter bw = response.getWriter();//
bw.write(result);
bw.flush();
bw.close();

요약: 1) ajax 가 데 이 터 를 제출 하 는 형식 은 기본적으로 utf - 8 이 며, javascript 에서 제공 하 는 escape () 또는 encodeURI () 방법 을 이용 합 니 다. 서버 에서 받 을 때 자바. net. URLDecoder. decode ("," UTF - 8 ") 방법 으로 디 코딩 해 야 합 니 다.
2) xtmlhttp 에서 돌아 오 는 데이터 의 기본 문자 인 코딩 은 utf - 8 이 므 로 서버 가 클 라 이언 트 에 데 이 터 를 보 낼 때 도 utf - 8 인 코딩 을 사용 해 야 합 니 다.
만약 상술 한 방법 이 여전히 난 코드 문 제 를 해결 하지 못 한다 면, jsp, htm, java 파일 을 UTF - 8 인 코딩 형식 으로 저장 해 보십시오.
한 마디 로 하면 앞 배경 데이터 의 상호작용 은 모두 utf - 8 인 코딩 을 사용 하면 된다.

좋은 웹페이지 즐겨찾기