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) 이 방법을 사용하면 이전 세 가지 클라이언트 측 인코딩을 모두 백그라운드에서 디코딩할 수 있습니다.