자바 스크립트의 모든 특수 문자 인코딩
Nov 10 2020
여기서받은 문자열을 인코딩하고 URL 매개 변수로 전달해야하므로 / 또는 paranthesis를 전달할 수 없다고 믿습니다 (따라서 다음 문자열이 있음을 고려하면
KEY WEST / Florida(FL)
나는 다음을 시도하고있다
encodeURIComponent("KEY WEST / Florida(FL)")
"KEY%20WEST%20%2F%20Florida(FL)"
escape("KEY WEST / Florida(FL)")
"KEY%20WEST%20/%20Florida%28FL%29"
첫 번째 코드는 ()를 유지하고 두 번째 코드는 /를 유지하므로 둘 다 나중에 코드에서 디코딩 할 수있는 문자열을 인코딩하지 않습니다.
한 번에이 작업을 수행하고 나중에 필요할 때 디코딩하는 방법은 무엇입니까?
또한 escape ()가 더 이상 사용되지 않는 것처럼 보이므로 인코딩을 수행하는 방법이 선호됩니까?
답변
1 FZs Nov 10 2020 at 22:23
URL 인코딩, encodeURI및 encodeURIComponent기능을 사용해야합니다.
encodeURI특수 문자 만 encodeURIComponent인코딩하고 URL에서 의미가있는 문자도 인코딩하므로 예를 들어 쿼리 문자열을 인코딩하는 데 사용됩니다.
괄호는 ( 여기에 설명 된대로 ) 인코딩하지 않고 URL의 모든 위치에서 허용 encodeURIComponent되므로 그대로 둡니다.
이 escape함수 는 deprecated 로 간주 될 수 있으며 공식적으로는 아니지만 피해야합니다.
그래서 인코딩을 수행하는 방법이 선호됩니까?
- 전체 URL의 경우 encodeURI
- URL 부분의 경우 (예 : 조각의 쿼리 문자열) encodeURIComponent
또한 언제 / 대신 이스케이프를 사용해야 합니까? 를 참조하십시오 .encodeURIencodeURIComponent