그러나 후자의 두 가지 방법은 전송을 위해 문자열을 UTF-8로 변환하여 서로 다른 페이지 인코딩으로 인해 발생하는 문자 왜곡 문제를 해결합니다.
예: 송신 페이지와 수신 페이지의 인코딩 형식(문자 집합)이 일치하지 않는 경우(발신 페이지는 GB2312이고 수신 페이지 인코딩은 UTF-8이라고 가정), escape()를 사용하여 변환 중국어 문자열을 전송하면 문자가 깨질 수 있습니다.
다음은 JS에서 URL을 인코딩/디코딩하는 다양한 방법입니다.
이스케이프 방법: @* / A-Z 0-9 a-z 문자는 인코딩되지 않으며 기타 비ASCII 문자는 다음으로 인코딩됩니다. % XX 인코딩 대체, 디코딩은 언이스케이프를 사용합니다. 이스케이프 방법은 "URI(Uniform Resource Identifier)"를 인코딩하는 데 사용할 수 없습니다. encodeURI 및 encodeURIComponent 메소드를 사용하여 인코딩해야 합니다. encodeURI(): 예! @ # $ & * ( ) = : / ; ' A-Z 0-9 a-z, decodeURI()를 사용하여 디코딩합니다. 문자가 인코딩됩니다(예: /..). encodeURIComponent() 메서드를 사용하세요. 이 메서드로 인코딩한 후 서버에 전달된 매개변수가 잘못된 문자입니다. 디코딩하려면 decodeURIComponent()를 사용하세요.