ajax 중국어 난 코드 문제 해결 방안

ajax 중국어 난 코드 문 제 는 중국어 에서 자주 발생 합 니 다.사실 조금 만 주의 하면 ajax 중국어 난 코드 가 발생 하지 않 습 니 다.앞 배경 인 코딩 이 일치 하 는 것 을 주의 하 십시오.당신 은 중국 어 를 사용 합 니 다.ajax 가 데 이 터 를 전송 할 때 utf-8 을 사용 합 니 다.그리고 ajax get 방법 에 대해 서 는 escape 나 urlcode 를 사용 하 는 것 이 좋 습 니 다.
 
<%@ page contenttype="text/html;charset=gb2312%>
servlet 을 사용 하면
 
response.setcontenttype("text/html;charset=gb2312");
request.setcharacterencoding("gb2312");
을 추가 하 는 더 좋 은 방법 은 filter 를 추가 하 는 것 이다
 
response.setcontenttype("text/html;charset=gb2312");
request.setcharacterencoding("gb2312");
.모든 것 이 해결 되 었 다.다시 한 번 클 라 이언 트 에서 데 이 터 를 올 리 려 면 서버 에서 인 코딩 전환
 
string param = request.getparamter("param");
param = new string(param.getbytes("iso-8859-1"),"gb2312");
을 해 야 한다.지금 은 모두 중국어 이다.앞 배경 인 코딩 이 일치 하 는 것 을 주의 하 십시오.당신 은 중국 어 를 사용 합 니 다.ajax 가 데 이 터 를 전송 할 때 utf-8
 
<script>
var oxmlhttp = new activexobject( "microsoft.xmlhttp ");
oxmlhttp.open( "get ", "http://dotnet.aspx.cc/content.aspx ", false);
oxmlhttp.send()
var ostream = new activexobject( "adodb.stream ");
if(ostream == null)
alert( " adodb.stream. ")
else
{
ostream.type=1;
ostream.mode=3;
ostream.open() ;
ostream.write(oxmlhttp.responsebody);
ostream.position= 0;
ostream.type= 2;
ostream.charset= "gb2312 ";
var result= ostream.readtext();
ostream.close();
ostream = null;
alert( result);
}
</script>
클 라 이언 트 파일 의 인 코딩 은 gb 2312 로 설정 되 어 있 습 니 다.아래 코드 와 같이 html 코드
 
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
가 보 낸 url 주소 에서 조회 문자열 이나 post 방식 으로 보 낸 요청 내용 은 escape 함수 로 인 코딩 하지 마 십시오.기억 하 십시오!서버 쪽 에 있 는 jsp 튜 토리 얼 파일 도 gb 2312 인 코딩 형식 으로 설정 되 어 있 습 니 다.아래 코드 와 같이 jsp 코드 나 response 의 머리 를 설정 합 니 다.아래 코드 와 같이
 
response.setheader("content-type","text/html; charset=gb2312");
두 가지 원 리 는 같 습 니 다.가장 중요 한 것 은 파 라 메 터 를 가 져 올 때 가 져 온 문자열 을 다시 인 코딩 하 는 것 입 니 다.아래 코드 와 같이
 
string username = new string(request.getparameter("username").getbytes("iso8859_1"),"gb2312");
그 중에서 username 은 받 은 매개 변수 입 니 다.out.print(username)직접 사용 하기;클 라 이언 트 에 게 중국 어 를 되 돌려 줄 수 있 습 니 다.클 라 이언 트 에서 xmlhttp.responsetext 속성 을 직접 사용 하면 되 돌아 오 는 중국 어 를 직접 사용 할 수 있 습 니 다!첨부 파일 에서 내 가 테스트 하 는 작은 예 는 tomcat 6.0 과 resin 2.1.8 에서 테스트 를 통과 했다!사실 필 터 를 추가 하 는 것 도 하나의 해결 방안 이다.제출 방법 이 get 일 때 서버 에 적 혀 있 을 때 이 코드
 
string username = new string(request.getparameter("username").getbytes("iso8859_1"),"gb2312");
가 post 일 때 이 렇 겠 죠
 
string username = new string(request.getparameter("username").getbytes("iso8859_1"),"utf-8");

좋은 웹페이지 즐겨찾기