이 기사에서는 JS의 Ajax에서 Barbled 코드 문제를 해결하는 Escape 기능에 대해 설명하며 참조를 위해 귀하와 공유됩니다. 특정 방법은 다음과 같습니다.
1. 문제 설명 :
원래, 웹 페이지의 Escape ()는 ISO-8859-1 문자 세트에 따라 중국어로 코딩 된 URL의 ESCLE (URL). 이러한 방식으로 요청 매개 변수는 request.getParameter ()를 통해 직접 얻을 수 있지만 나중에 JavaScript는 Escape ()를 유니 코드 문자 세트 인코딩으로 대체했습니다. 이러한 방식으로, 요청 매개 변수는 JSP 튜토리얼 및 서블릿에서 직접 얻을 수 없으며 특정 이유를 알 수 없습니다.
2. 해결책 :
1. 첫째, 한자를 두 번 인코딩하십시오. 매개 변수 이름을 전달하려면 값이 "hello"인 경우 URL의 형식은 .... name = Escape ( "Hello")입니다. 이러한 방식으로 인코딩 된 매개 변수는 request.getParameter ()에서 얻을 수 있습니다.
2. 획득 된 매개 변수는 %25U4F60 %25U597D의 형식이므로 일반 urlDecoder.decode ()를 디코딩하기 위해 사용하는 것은 불가능합니다. 다행히도이 세상에는 충분한 사람들이 있습니다. 인터넷에서 Escape () 및 Unescape ()-스타일 코덱을 JavaScript에서 구현할 수있는 도구 클래스를 직접 찾았습니다.
다음과 같이 코드를 복사하십시오. <script language = "javaScript">
함수 get (id) {return document.getElementById (id) .value}
기능 설정 ()
{
var xmlhttp;
if (window.activexObject)
{
xmlhttp = new ActiveXobject ( "microsoft.xmlhttp")
}또 다른{
xmlhttp = new xmlhttprequest ();
}
xmlhttp.onreadyStateChange = function ()
{
if (xmlhttp.readystate == 4)
{
if (xmlhttp.status == 200)
{
경고 ( "성공!")
}또 다른{
경고 (xmlhttp.status)
}
}
}
var url = "action.asp 튜토리얼? action = setting & rnd ="+math.random ()
xmlhttp.open ( "post", url, true)
var senddate = "title ="+Escape (get ( "title"))+"& conn_way ="+Escape (get ( "conn_way"))+"& databasename ="+Escape (get ( "DatabaseName"))+"& sqlusername ="+Escape (get ( "sqlusername")+"& sqlpassword ="+esc ape (get ( "sqlpassword"))+"& sqlllocalname ="+Escape (get ( "sqlllocalname"))+"& pg_size ="+Escape (get ( "pg_size"))+"& adminid ="+Escape ( "adminiD")) & adminpwd = "+Escape (adminpwd");
2727 xmlhttp.setRequestHeader ( 'content-type', 'application/x-www-form-urlencoded');
xmlhttp.send (senddate)
}
</스크립트>
위의 예에서, 우리는 중국어로 탈출 함수 만 사용하며 구문은 다음과 같습니다.
정의 및 사용 :
Escape () 함수는 문자열을 모든 컴퓨터에서 읽을 수 있도록 문자열을 인코딩합니다.
문법:
탈출 (문자열) 매개 변수 설명
문자열이 필요합니다. 이스케이프하거나 인코딩 할 문자열.
반품 값 :
인코딩 된 문자열의 사본. 이 문자 중 일부는 16 진 탈출 시퀀스로 대체됩니다.
설명 :
이 방법은 ASCII 문자와 숫자를 인코딩하지 않으며 다음 ASCII 구두점 마크를 인코딩하지도 않습니다. ! ~ * '(). 다른 모든 문자는 탈출 된 시퀀스로 대체됩니다.
팁과 의견 :
팁 : Unescape ()를 사용하여 Escape () 인코딩 된 문자열을 디코딩 할 수 있습니다.
참고 : ecmascript v3 은이 방법의 사용에 반대하며 응용 프로그램은 DecodeUri () 및 decodeUricomponent () 대신 사용합니다.
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.