이 기사는 JavaScript가 URL 트랜스코딩 및 디코딩을 구현하는 방법에 대해 설명합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1. escape 및 unescape
escape()는 URL 인코딩에 직접 사용할 수 없습니다. 실제 기능은 문자의 유니코드 인코딩 값을 반환하는 것입니다.
유니코드 문자 세트를 사용하여 0-255를 제외한 지정된 문자열을 인코딩합니다. 모든 공백, 문장 부호, 특수 문자 및 기타 관련 비ASCII 문자는 %xx 형식의 문자 인코딩으로 변환됩니다(xx는 문자 세트 테이블에 있는 문자 인코딩의 16진수와 같습니다). 예를 들어 공백 문자에 해당하는 인코딩은 %20입니다.
Escape는 *, +, -, ., /, @, _, 0-9, a-z, A-Z 등 69자를 인코딩하지 않습니다.
escape() 함수는 js에서 문자열을 인코딩하는 데 사용되며 일반적으로 사용되지 않습니다.
코딩:
escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')
결과: "http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"
escape('张')
결과: "%u5F20"
디코딩:
unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
결과: "http://www.baidu.com?name=zhang@xiao@jie&order=1"
unescape("%u5F20")
결과: "Zhang"
2. decodeURI
UTF-8 인코딩 형식을 사용하여 URI 문자열을 다양한 이스케이프 문자열로 변환합니다.
encodeURI에는 82개의 인코딩되지 않은 문자가 있습니다: !, #, $, &, ', (,), *, +,,, -,.,/,:,;,=,?,@,_,~,0 -9, a-z, A-Z
encodeURI()는 전체 URL을 인코딩하는 데 사용됩니다
인코딩:
encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')
결과: "http://www.baidu.com?name=zhang@xiao@jie&order=1"
디코딩:
decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")
결과: "http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"
3. encodeURIComponent 및 decodeURIComponent
encodeURI()와의 차이점은 다음과 같습니다. URL의 구성요소는 전체 URL을 인코딩하는 대신 개별적으로 인코딩됩니다.
그러므로 "; / ? : @ & = + $ , #", encodeURI()로 인코딩되지 않은 이러한 기호는 모두 encodeURIComponent()로 인코딩됩니다. 구체적인 인코딩 방법은 둘 다 동일합니다. UTF-8 인코딩 형식 문자열을 사용하여 URI 문자열을 이스케이프 형식으로 변환합니다.
encodeURIComponent()는 매개변수를 전달하는 데 사용됩니다. 특수 문자가 포함된 매개변수는 중단을 유발할 수 있습니다.
encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')
결과: "http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%. 40xiao%40jie%26order %3D1"
디코딩:
decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")
결과: "http://www.baidu.com?name=zhang@xiao@jie&order=1"
요약:
escape()를 직접 사용할 수 없습니다. URL에 사용됩니다. 인코딩의 실제 기능은 문자의 유니코드 인코딩 값을 반환하는 것입니다. 예를 들어 "봄 축제"의 반환 결과는 %u6625%u8282이며, escape()는 "+"를 인코딩하지 않습니다
주로 중국어에 사용됩니다.
encodeURI()는 실제로 URL을 인코딩하는 데 사용되는 함수입니다.
전체 URL 주소를 인코딩하지만 특별한 의미를 인코딩하지는 않습니다. 기호 "; / ? : @ & = + $, #". 해당 디코딩 함수는 decodeURI()입니다.
encodeURIComponent()
인 것 같아요. 앰퍼샌드로 URL을 전달하려면 encodeURIComponent()
위 내용은 자바스크립트는 URL 트랜스코딩 및 디코딩을 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!