JavaScript를 사용하여 URL을 인코딩하는 방법: 1. encodeURI() 함수를 사용하여 문자열을 URI로 인코딩합니다. 2. encodeURIComponent() 함수를 사용하여 문자열을 URI 구성 요소로 인코딩합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
프로젝트에서 URL이 매개변수와 배열 객체를 파싱하는데 실패하는 문제가 발생했습니다. 트랜스코딩으로 해결했지만, JS 트랜스코딩과 디코딩을 연구해보니 실제 원리가 명확하지 않았습니다.
인코딩에 사용되는 Javascript 언어에는 세 가지 기능이 있습니다.
escape()
encodeURIComponent()
세 가지 인코딩 방법의 차이점:
escape과 unescape:
escape: 그럴 수 없어 직접 사용 URL 인코딩의 경우 실제 기능은 문자의 유니코드 인코딩 값을 반환하여 지정된 문자열을 인코딩할 수 있도록 하는 것입니다.
ASCII 문자, 숫자, 구두점 "@ * _ + - . /"를 제외한 모든 공백, 구두점, 특수 문자 및 기타 ASCII가 아닌 문자는 %xx(16진수) 형식의 문자 인코딩으로 변환됩니다. 숫자) . 즉, escape는 문자를 인코딩하지 않습니다. 69개의 문자가 있습니다: *, +, -, ., /, @, _, 0-9, a-z, A-Z.
해당 디코딩 함수는 unescape();
encodeURI 및 decodeURI입니다.
**encodeURI()**는 실제로 Javascript에서 URL을 인코딩하는 데 사용되는 함수입니다. URL 전체가 인코딩됩니다. 일반적인 기호 외에도 URL "; / ? : @ & = + $ , #"에서 특별한 의미를 갖는 기호는 인코딩되지 않습니다. 인코딩 후 기호의 UTF-8 형식을 출력하고 각 바이트 앞에 %를 추가합니다. encodeURI()는 작은따옴표를 인코딩하지 않습니다.
의 해당 디코딩 함수는 decodeURI()입니다.
encodeURIComponent 및 decodeURIComponent
encodeURIComponent은 전체 URL을 인코딩하는 대신 URL의 구성 요소를 개별적으로 인코딩하는 데 사용됩니다. 따라서 encodeURI()에서 인코딩되지 않은 "; / ? : @ & = + $ , #" 기호는 모두 encodeURIComponent()에서 인코딩됩니다.
encodeURIComponent()는 "/" 및 기타 문자와 같은 더 많은 문자를 인코딩하기 때문입니다. 문자열에 URI의 여러 부분이 포함되어 있으면 인코딩에 사용할 수 없습니다. 그렇지 않으면 "/" 문자가 인코딩된 후 URL이 잘못 표시됩니다. 따라서 매개변수를 전달할 때 특수 문자가 포함된 매개변수로 인해 중단이 발생할 수 있습니다.
요약:
**escape()** 함수는 js에서 문자열을 인코딩하는 데 사용됩니다. 일반적으로 사용되지 않음
**encodeURI()**는 전체 URL을 이동하는 데 사용됩니다.
**encodeURIComponent()**는 매개변수를 전달하는 데 사용됩니다. 특수 문자가 포함된 매개변수는 중단을 유발할 수 있습니다.
【추천 학습: javascript 고급 튜토리얼】
위 내용은 자바스크립트에서 URL을 인코딩하고 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!