>  기사  >  웹 프론트엔드  >  js에서 문자열을 인코딩하는 방법 요약

js에서 문자열을 인코딩하는 방법 요약

高洛峰
高洛峰원래의
2016-12-07 11:12:571061검색

JavaScript를 사용하여 URL 문자열을 인코딩할 때 escape(), encodeURI() 및 encodeURIComponent()의 세 가지 메서드는 URL 무결성에 영향을 미치는 일부 특수 문자를 필터링할 수 있습니다.

그러나 후자의 두 가지 방법은 문자열을 UTF-8로 변환하여 전송하므로 일관되지 않은 페이지 인코딩으로 인해 발생하는 문자 깨짐 문제를 해결합니다.

예: 송신 페이지와 수신 페이지의 인코딩 형식(문자 집합)이 일치하지 않는 경우(발신 페이지는 GB2312이고 수신 페이지 인코딩은 UTF-8이라고 가정), escape()를 사용하여 변환 중국어 문자열을 전송하면 문자가 깨질 수 있습니다.

JS에서 URL을 인코딩/디코딩하는 다양한 방법은 다음과 같습니다.

1. 이스케이프 방법: 모든 컴퓨터에서 읽을 수 있는 인코딩된 문자열 개체를 반환합니다.

function escape(charString : String): String

이 메소드로 인코딩되지 않는 문자: @ * / +

설명: escape 메소드는 다음을 포함하는 charstring을 반환합니다. 콘텐츠 문자열 값(유니코드 형식). 모든 공백, 구두점,

악센트 및 기타 비ASCII 문자는 %xx 인코딩으로 대체됩니다. 여기서 xx는 문자를 나타내는 16진수 숫자와 같습니다.

예를 들어 공백은 "%20"으로 반환됩니다. (255보다 큰 문자 값은 %uxxxx 형식으로 저장됩니다.)

참고: URI(Uniform Resource Identifier)를 인코딩하는 데 이스케이프 메서드를 사용할 수 없습니다. encodeURI 및 encodeURIComponent 메소드를 사용하여 인코딩해야 합니다.

2. encodeURI 메소드: 유효한 URI(Uniform Resource Identifier)로 인코딩된 문자열을 반환합니다.

함수 encodeURI(URIString : String) : String

이 방법으로 인코딩되지 않는 문자: ! @ # $ & * ( ) = : / ? 🎜 >설명: encodeURI 메소드는 인코딩된 URI를 반환합니다. 인코딩 결과가 decodeURI로 전달되면 원래 문자열이 반환됩니다. encodeURI는 ":", "/", ";" 및 "?" 문자를 인코딩하지 않습니다. 이러한 문자를 인코딩하려면

encodeURIComponent를 사용하세요.

3. encodeURIComponent 메서드: URI(Uniform Resource Identifier)의 유효한 구성 요소를 인코딩하는 문자열을 반환합니다.

function encodeURIComponent(encodedURIString : String) : String

이 메서드로 인코딩되지 않는 문자: ! * ( ) '

설명: encodeURIComponent 메서드는 인코딩된 URI를 반환합니다. URI. 인코딩 결과가 decodeURIComponent로 전달되면 초기 문자열이 반환됩니다. encodeURIComponent 메소드는 모든 문자를 인코딩하므로

문자열이 /folder1/folder2/default.html과 같은 경로를 나타내는 경우 해당 슬래시도 인코딩됩니다. 문자열은 웹 서버에 요청으로 전송되면 유효하지 않습니다. 문자열에 여러 URI 구성 요소가 포함된 경우 encodeURI 메서드를 사용하여 인코딩합니다.

4. 이스케이프 메서드: 이스케이프 메서드로 인코딩된 String 개체에서 디코딩된 문자열을 반환합니다.

function unescape(charString : String) : String

설명: unescape 메서드는 charstring의 내용이 포함된 문자열 값을 반환합니다. %xx 16진수 형식으로 인코딩된 모든

문자는 ASCII 문자 세트의 해당 문자로 대체됩니다. (%uxxxx 형식으로 인코딩된 문자(유니코드 문자)는 16진수 인코딩 xxxx에서 유니코드 문자로 대체됩니다.)

참고: "Uniform Resource Identifiers" "(URI)를 디코딩하는 데 이스케이프 해제 방법을 사용하면 안 됩니다. 대신 decodeURI 및 decodeURIComponent 메소드를 사용하십시오.

5. decodeURI 메서드: 인코딩된 URI(Uniform Resource Identifier)의 인코딩되지 않은 형식을 반환합니다.

함수 decodeURI(URIstring : String) : String

decodeURIComponent 메서드: URI(Uniform Resource Identifier)의 인코딩된 구성 요소를 인코딩되지 않은 형식으로 반환합니다.

function decodeURIComponent(encodedURIString : String) : String

BTW: C#에서 URL을 인코딩하는 방법입니다. . .

인코딩: Server.UrlEncode(string)

디코딩: Server.UrlDecode(string) 이 방법을 사용하면 이전 세 가지 클라이언트 측 인코딩을 모두 백그라운드에서 디코딩할 수 있습니다.

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