>  기사  >  웹 프론트엔드  >  URL string_javascript 기술의 JS 인코딩/디코딩 분석

URL string_javascript 기술의 JS 인코딩/디코딩 분석

WBOY
WBOY원래의
2016-05-16 18:59:221194검색

escape(), encodeURI() 및 encodeURIComponent()의 세 가지 메소드는 URL의 무결성에 영향을 미치는 일부 특수
문자를 필터링할 수 있습니다. 그러나 후자의 두 가지 방법은 전송을 위해 문자열을 UTF-8로 변환하여 서로 다른 페이지 인코딩으로 인해 발생하는 문자 왜곡 문제를 해결합니다
. 예를 들어 송신 페이지와 수신 페이지의 인코딩 형식(Charset)이 일치하지 않는 경우(송신 페이지는 GB2312이고 수신 페이지 인코딩은
UTF-8이라고 가정), escape()를 사용하여 중국어로 변환하여 전송합니다. 문자열을 사용하면 문자가 깨질 수 있습니다.
다음은 JS에서 URL을 인코딩/디코딩하는 다양한 방법입니다.
이스케이프 방법: 모든 컴퓨터에서 읽을 수 있는 인코딩된 문자열 개체를 반환합니다.
function escape(charString : String) : String
이 메서드로 인코딩되지 않는 문자: @ * /
설명: escape 메서드는 charstring의 내용이 포함된 문자열 값(유니코드 형식)을 반환합니다. 모든 공백, 구두점,
악센트 및 기타 비ASCII 문자는 %xx 인코딩으로 대체됩니다. 여기서 xx는 문자를 나타내는 16진수 숫자와 같습니다.
예를 들어 공백은 " "로 반환됩니다. (255보다 큰 문자 값은 %uxxxx 형식으로 저장됩니다.)
참고: URI(Uniform Resource Identifier)를 인코딩하는 데 이스케이프 메서드를 사용할 수 없습니다. 인코딩하려면 encodeURI 및
encodeURIComponent 메서드를 사용하세요.
encodeURI 메서드: 유효한 URI(Uniform Resource Identifier)로 인코딩된 문자열을 반환합니다.
함수 encodeURI(URIString : String) : String
이 메서드로 인코딩되지 않는 문자: ! @ # $ & * ( ) = : / ? URI. 인코딩 결과가 decodeURI로 전달되면 초기
문자열이 반환됩니다. encodeURI는 ":", "/", ";" 및 "?" 문자를 인코딩하지 않습니다. 이러한 문자를 인코딩하려면
encodeURIComponent를 사용하세요.
encodeURIComponent 메소드: 유효한 구성 요소를 URI(Uniform Resource Identifier)로 인코딩하는 문자열을 반환합니다.
함수 encodeURIComponent(encodedURIString : String) : String
이 메서드로 인코딩되지 않는 문자: ! * ( ) '
설명: encodeURIComponent 메서드는 인코딩된 URI를 반환합니다. 인코딩 결과가
decodeURIComponent로 전달되면 초기 문자열이 반환됩니다. encodeURIComponent 메소드는 모든 문자를 인코딩하므로
문자열이 /folder1/folder2/default.html과 같은 경로를 나타내는 경우 해당 슬래시도
인코딩됩니다. 문자열은 웹 서버에 요청으로 전송되면 유효하지 않습니다. 문자열에 여러 개의 URI
구성 요소가 포함된 경우 encodeURI 메서드를 사용하여 인코딩합니다.
unescape 메서드: 이스케이프 메서드로 인코딩된 String 개체에서 디코딩된 문자열을 반환합니다.
function unescape(charString : String) : String
설명: unescape 메서드는 charstring의 내용이 포함된 문자열 값을 반환합니다. %xx 16진수 형식으로 인코딩된 모든
문자는 ASCII 문자 세트의 해당 문자로 대체됩니다. (%uxxxx 형식으로 인코딩된 문자(유니코드 문자)는 16진수 인코딩 xxxx의 유니코드 문자로 대체됩니다.)
참고: URI(Uniform Resource Identifier)를 디코딩하는 데 이스케이프 해제 방법을 사용하면 안 됩니다. 대신 decodeURI 및
decodeURIComponent 메소드를 사용하세요.
decodeURI 메서드: 인코딩된 URI(Uniform Resource Identifier)의 인코딩되지 않은 형식을 반환합니다.
함수 decodeURI(URIstring : String) : 문자열
decodeURIComponent 메서드: URI(Uniform Resource Identifier)의 인코딩된 구성 요소를 인코딩되지 않은 형식으로 반환합니다.
함수 decodeURIComponent(encodedURIString : String) : String
BTW: C#에서 URL을 인코딩하는 방법입니다. . .
인코딩: Server.UrlEncode(string)
디코딩: Server.UrlDecode(string) 이 방법을 사용하면 이전 세 가지 클라이언트 측 인코딩을 모두 백그라운드에서 디코딩할 수 있습니다.

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