다음은 변수값의 URL 인코딩을 요약한 것입니다. encodeURIComponent() 사용을 권장하며, GET, POST 메소드 모두 전송 가능합니다.
JavaScript에서 URL 문자열을 인코딩하는 방법에는 escape(), encodeURI() 및 encodeURIComponent() 등 여러 가지가 있습니다. 이러한 인코딩은 서로 다른 역할을 합니다.
escape() 메서드:
ISO 라틴 문자 집합을 사용하여 지정된 문자열을 인코딩합니다. 모든 공백, 구두점, 특수 문자 및 기타 비ASCII 문자는 %xx 형식의 문자 인코딩으로 변환됩니다(xx는 문자 집합 테이블에 있는 문자 인코딩의 16진수와 동일합니다). 예를 들어 공백 문자에 해당하는 인코딩은 입니다.
이 메소드로 인코딩되지 않는 문자: @ * /
encodeURI() 메소드:
UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식으로 변환합니다. .
이 방법으로 인코딩되지 않는 문자: ! @ # $& * ( ) = : / ? '
encodeURIComponent() 방법:
URI 문자열 변환 UTF-8 인코딩 형식을 사용하여 이스케이프 형식의 문자열로 변환합니다. encodeURI()와 비교하여 이 메서드는 / 및 기타 문자와 같은 더 많은 문자를 인코딩합니다. 따라서 문자열에 URI의 여러 부분이 포함되어 있으면 이 방법을 사용하여 인코딩할 수 없습니다. 그렇지 않으면 / 문자가 인코딩된 후 URL에 오류가 표시됩니다.
이 방법으로 인코딩되지 않는 문자: ! * ( ) '
따라서 중국어 문자열의 경우 문자열 인코딩 형식을 UTF-8 형식(예: 원본 페이지 및 target 페이지의 문자셋이 일치하는 경우) Escape만 사용하면 됩니다. 페이지가 GB2312 또는 기타 인코딩이고 매개변수를 허용하는 페이지가 UTF-8로 인코딩된 경우 encodeURI 또는 encodeURIComponent를 사용해야 합니다.