>  기사  >  웹 프론트엔드  >  자바스크립트에서 URL을 인코딩하고 변환하는 방법

자바스크립트에서 URL을 인코딩하고 변환하는 방법

青灯夜游
青灯夜游원래의
2021-04-09 18:56:1312218검색

JavaScript를 사용하여 URL을 인코딩하는 방법: 1. encodeURI() 함수를 사용하여 문자열을 URI로 인코딩합니다. 2. encodeURIComponent() 함수를 사용하여 문자열을 URI 구성 요소로 인코딩합니다.

자바스크립트에서 URL을 인코딩하고 변환하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

프로젝트에서 URL이 매개변수와 배열 객체를 파싱하는데 실패하는 문제가 발생했습니다. 트랜스코딩으로 해결했지만, JS 트랜스코딩과 디코딩을 연구해보니 실제 원리가 명확하지 않았습니다.

인코딩에 사용되는 Javascript 언어에는 세 가지 기능이 있습니다.

  • escape()

  • encodeURI()
  • encodeURIComponent()

세 가지 인코딩 방법의 차이점:

  • escapeunescape:

    escape: 그럴 수 없어 직접 사용 URL 인코딩의 경우 실제 기능은 문자의 유니코드 인코딩 값을 반환하여 지정된 문자열을 인코딩할 수 있도록 하는 것입니다.
    ASCII 문자, 숫자, 구두점 "@ * _ + - . /"를 제외한 모든 공백, 구두점, 특수 문자 및 기타 ASCII가 아닌 문자는 %xx(16진수) 형식의 문자 인코딩으로 변환됩니다. 숫자) . 즉, escape는 문자를 인코딩하지 않습니다. 69개의 문자가 있습니다: *, +, -, ., /, @, _, 0-9, a-z, A-Z.

    해당 디코딩 함수는 unescape();

  • encodeURIdecodeURI입니다.
    **encodeURI()**는 실제로 Javascript에서 URL을 인코딩하는 데 사용되는 함수입니다. URL 전체가 인코딩됩니다. 일반적인 기호 외에도 URL "; / ? : @ & = + $ , #"에서 특별한 의미를 갖는 기호는 인코딩되지 않습니다. 인코딩 후 기호의 UTF-8 형식을 출력하고 각 바이트 앞에 %를 추가합니다. encodeURI()는 작은따옴표를 인코딩하지 않습니다.

    의 해당 디코딩 함수는 decodeURI()입니다.

  • encodeURIComponentdecodeURIComponent

    encodeURIComponent은 전체 URL을 인코딩하는 대신 URL의 구성 요소를 개별적으로 인코딩하는 데 사용됩니다. 따라서 encodeURI()에서 인코딩되지 않은 "; / ? : @ & = + $ , #" 기호는 모두 encodeURIComponent()에서 인코딩됩니다.

    encodeURIComponent()는 "/" 및 기타 문자와 같은 더 많은 문자를 인코딩하기 때문입니다. 문자열에 URI의 여러 부분이 포함되어 있으면 인코딩에 사용할 수 없습니다. 그렇지 않으면 "/" 문자가 인코딩된 후 URL이 잘못 표시됩니다. 따라서 매개변수를 전달할 때 특수 문자가 포함된 매개변수로 인해 중단이 발생할 수 있습니다.

요약:

**escape()** 함수는 js에서 문자열을 인코딩하는 데 사용됩니다. 일반적으로 사용되지 않음

**encodeURI()**는 전체 URL을 이동하는 데 사용됩니다.

**encodeURIComponent()**는 매개변수를 전달하는 데 사용됩니다. 특수 문자가 포함된 매개변수는 중단을 유발할 수 있습니다.

【추천 학습: javascript 고급 튜토리얼

위 내용은 자바스크립트에서 URL을 인코딩하고 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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