>웹 프론트엔드 >JS 튜토리얼 >javascript URL 인코딩 및 decoder_javascript 기술 사용 지침

javascript URL 인코딩 및 decoder_javascript 기술 사용 지침

WBOY
WBOY원래의
2016-05-16 18:29:441063검색

일부 전송 페이지에서는 GB2312를 사용하고 수신 페이지에서는 UTF8을 사용하므로 수신된 매개변수가 원본 매개변수와 일치하지 않을 수 있습니다. 서버측 urlEncode 함수를 사용하여 인코딩된 URL과 클라이언트측 JavaScript의 encodeURI 함수를 사용하여 인코딩된 URL 간에 결과가 다릅니다.
javaScript의 인코딩 방법:
escape() 방법:
ISO 라틴 문자 세트를 사용하여 지정된 문자열을 인코딩합니다. 모든 공백, 구두점, 특수 문자 및 기타 비ASCII 문자는 %xx 형식의 문자 인코딩으로 변환됩니다(xx는 문자 집합 테이블에 있는 문자 인코딩의 16진수와 동일합니다). 예를 들어 공백 문자에 해당하는 인코딩은 입니다. 이스케이프 해제 방법은 그 반대입니다. 이 메서드로 인코딩되지 않는 문자: @ * /

영어 설명: MSDN JScript 참조: 이스케이프 메서드는 [인수]의 내용이 포함된 문자열 값(유니코드 형식)을 반환합니다. > 모든 공백, 구두점, 악센트 문자 및 기타 비ASCII 문자는 %xx 인코딩으로 대체됩니다. 여기서 xx는 문자를 나타내는 16진수에 해당합니다.
예를 들어 공백은 " Edge Core Javascript 가이드: 이스케이프 및 이스케이프 해제 기능을 사용하면 문자열을 인코딩하고 디코딩할 수 있습니다.
이스케이프 함수는 ISO 라틴 문자 집합에 있는 인수의 16진수 인코딩을 반환합니다.
이스케이프 해제 함수는 문자열을 반환합니다. 지정된 16진수 인코딩 값


encodeURI() 메서드
: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. 이 방법으로 인코딩되지 않는 문자: ! @ # $& * ( ) = : / ? ' 영어 설명: MSDN JScript 참조: encodeURI 메서드는
결과를 decodeURI에 전달하면 원래 문자열이 반환됩니다.
encodeURI 메서드는 ":", "/", ";" 및 "?" 문자를 인코딩하지 않습니다.
이러한 문자를 인코딩하려면 encodeURIComponent를 사용하세요. Edge Core Javascript 가이드: 특정 문자의 각 인스턴스를

식별자)를 인코딩합니다. 🎜 >encodeURIComponent() 메서드
: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. encodeURI()와 비교하여 이 메서드는 / 및 기타 문자와 같은 더 많은 문자를 인코딩합니다. 따라서 문자열에 URI의 여러 부분이 포함되어 있으면 이 방법을 사용하여 인코딩할 수 없습니다. 그렇지 않으면 / 문자가 인코딩된 후 URL에 오류가 표시됩니다. 이 메서드로 인코딩되지 않는 문자: ! * ( )
영어 설명: MSDN JScript 참조: encodeURIComponent 메서드는 결과를 decodeURIComponent에 전달하면 원본 문자열이 반환됩니다. 🎜 >encodeURIComponent 메소드는 모든 문자를 인코딩하므로 문자열이 /folder1 /folder2 /default.html과 같은 경로를 나타내는 경우 주의하십시오. 슬래시 문자는 인코딩되며 웹 서버에 요청으로 전송되면 유효하지 않습니다. 문자열에 단일 URI 구성 요소 이상이 포함되어 있으면 encodeURI 메소드를 사용하세요. Mozilla 개발자 핵심 자바스크립트 가이드: 특정 문자의 각 인스턴스를 1개,
2개 또는 3개로 바꿔서 URI(Uniform Resource Identifier) ​​구성 요소를 인코딩합니다. 문자의 UTF-8 인코딩을 나타내는 이스케이프 시퀀스입니다.


따라서 중국어 문자열의 경우 문자열 인코딩 형식을 UTF-8 형식(예: 원본 페이지 및 target 페이지의 문자셋이 일치하는 경우) Escape만 사용하면 됩니다. 페이지가 GB2312 또는 기타 인코딩이고 매개변수를 허용하는 페이지가 UTF-8로 인코딩된 경우 encodeURI 또는 ​​encodeURIComponent를 사용해야 합니다.
또한 javascript1.5 이후에 encodeURI/encodeURIComponent가 도입되었으며, javascript1.0에서는 escape가 가능했습니다.

영어 참고 사항: escape() 메서드는 서버 측에서 공백으로 해석되거나 해당 필드에 공백이 있는 양식에서 생성되는 문자를 인코딩하지 않습니다.
이러한 단점으로 인해 가능하다면 escape()의 사용을 피해야 합니다. 일반적으로 encodeURIComponent()를 사용하는 것이 가장 좋습니다.
encodeURI() 메소드는 URI [REF]를 인코딩한다는 점에서 escape()보다 조금 더 특수합니다. URL의 일부인 쿼리 문자열
URI를 사용하고 특정 문자를 인코딩되지 않은 상태로 유지해야 하는 문자열을 인코딩해야 하는 경우 이 방법을 사용합니다. ' 문자는 URI 내에서 유효한 문자이므로 마지막으로 URI의 단일 구성 요소를 인코딩할 때
대부분의 경우에 encodeURIComponent() 메서드를 사용해야 합니다.
이 메서드는 일반적으로 사용되는 특정 문자를 인코딩합니다. 많은 구성 요소가 포함될 수 있도록 URI에 대한 특수 문자로 인식됩니다.
' 문자는 URI 내에서 유효한 문자이므로 인코딩하지 않습니다.

1. 함수
1) encodeURI는 URI 문자열을 인코딩한 결과를 반환합니다.URL은 가장 일반적인 URI입니다.
2) decodeURI는 인코딩된 URI 문자열을 원래 문자열로 디코딩하여 반환합니다.
3) 예: < 스크립트 언어 = " javascript " > encodeStr: http://www.amigoxie.com/index.jsp?name=amigoxie decodeStr: http://www.amigoxie.com/index.jsp?name=xind
2. 수치 처리 기능
1. )parseInt는 문자열에 의해 지정된 베이스를 정수로 변환합니다. 구문 형식은 다음과 같습니다.parseInt(numString, [radix]) 첫 번째 매개 변수는 2에서 36 사이의 값입니다. 사이의 값은 문자열 변환에 사용되는 기본입니다. 예는 다음과 같습니다. 출력 결과는 다음과 같습니다. 기본 결과: 32:32;032:26;0x32:50 이진수로 변환된 결과: 32:NaN;032:0;0x32:0 8진수로 변환된 결과: 32:26;032:26;0x32:0 16진수로 변환한 결과: 32:50;032:50;0x32:50 11001010 변환한 결과: 2진수: 202; 16진수: 285216784 8진수 시스템: 2359816; 43abc 변환 후: 43; abc43 변환 후: NaN; abc 변환 후: NaN
2)parseFloat 메서드 이 메서드는 문자열을 해당 십진수로 변환합니다. eg. 출력 결과는 다음과 같습니다. 4.11 5.1 3) isNaN 메소드 이 메소드는 처음 두 메소드의 반환 값이 숫자가 아닌 경우 true를 반환하고, 그렇지 않으면 false를 반환하는 데 사용됩니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.