>웹 프론트엔드 >JS 튜토리얼 >JavaScript_javascript 스킬의 다양한 인코딩과 디코딩 기능의 차이점과 주의사항

JavaScript_javascript 스킬의 다양한 인코딩과 디코딩 기능의 차이점과 주의사항

WBOY
WBOY원래의
2016-05-16 18:21:14863검색

사람들이 JS를 사용하여 데이터를 제출할 때, 특히 중국어를 사용할 때 제출할 문자열을 URL 인코딩해야 하는 경우가 많습니다. JS, encodeURI, encodeURIComponent 및 escape에서 문자열을 URL 인코딩하는 방법에는 여러 가지가 있습니다. 제가 본 많은 코드에서는 escape 함수를 가장 많이 사용하는데, 이 함수는 권장하지 않습니다. 다음 기능을 별도로 살펴보겠습니다.

encodeURI: 지정된 문자열을 URL 인코딩합니다. 단, 다음 URL에서는 # / = & 키 문자를 제외합니다.
 
 encodeURIComponent: URL의 특수 문자를 포함하여 문자열의 문자를 인코딩합니다.
 
  escape: 이것은 JS 함수의 비교적 초기 버전입니다. 이 함수에서 유니코드 문자를 처리할 때 몇 가지 문제가 있습니다.
 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var url = "http: //www.abc.com?q=aa& amp;b=haha";
var encodeURI(url)
alert(encodedUrl); /www.abc.com ?q=aa&b=hehe
encodedUrl = encodeURIComponent(url);
alert(encodedUrl); //출력: http:/// /www.abc.com?q=aa&b= ㅎㅎ
alert(escape( url)); //출력: http://www.abc.com?q=aa&b=%u5475%u5475

위와 같이 중국어를 처리할 때 이스케이프 함수의 문자는 %uxxxx 형식으로 변환됩니다. 이는 분명히 URL 인코딩 형식과 다르며, encodeURIComponent 함수 인코딩이 가장 철저합니다. 특별한 필요가 없으면 encodeURIComponent 함수가 더 일반적입니다. 물론 이스케이프를 사용하면 사용할 수 없을 수도 있습니다. 문제가 무엇입니까? 아마도 서버 측 언어에서 정상적으로 구문 분석할 수 있지만 이 함수는 유니코드 문자를 처리할 때 표준이 아니므로 권장됩니다. encodeURIComponent 및 decodeURIComponent 함수를 사용하여 문자열을 URL 인코딩 및 디코딩합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.