찾다

 >  Q&A  >  본문

URL 매개변수 설정 시 특수 문자 인코딩

<p>특수 문자 <code>$</code></p>도 포함해야 하는 일부 URL 매개변수를 설정해야 합니다. <p>현재 <code>.set()</code>를 사용하여 다음 매개변수의 값을 생성하고 설정하고 있습니다. </p> <pre class="brush:php;toolbar:false;">const myUrl = new URL("http://www.example.com/?"); let params = new URLSearchParams(); params.set('$param1', '60'); params.set('$param2', '100');</pre> <p>URL에 <code>%24</가 아닌 <code>$</code>를 얻으려면 <code>encodeURI()</code>를 사용해야 한다는 것을 알고 있습니다. code> - 그런데 어느 단계에서 해야 할까요? </p> <p>매개변수를 문자열로 변환하고 이를 URL에 추가하는 동안 이와 같은 작업을 수행하면 이미 변환된 것입니다. </p> <pre class="brush:php;toolbar:false;">myUrl.search = encodeURI(params.toString()); // 출력: http://www.example.com/?%24param1=60&%24param2=100 // 예상값: http://www.example.com/?$param1=60&$param2=100</pre> <p><br /></p>
P粉348915572P粉348915572498일 전477

모든 응답(2)나는 대답할 것이다

  • P粉147747637

    P粉1477476372023-08-18 09:43:27

    필요하고 서버에서 지원하므로 마지막에 수정하면 됩니다

    으아악

    회신하다
    0
  • P粉986028039

    P粉9860280392023-08-18 09:07:27

    귀하의 경우 $字符被编码为%24,因为它是URL中的保留字符。 URLSearchParams对象的set 메소드는 결과 문자열이 유효한 URL인지 확인하기 위해 이러한 문자를 자동으로 인코딩합니다.

    그러나 $ 문자를 있는 그대로 포함하려면 쿼리 문자열을 수동으로 작성하여 자동 인코딩을 우회할 수 있습니다.

    으아악

    이렇게 하면 원하는 결과가 나오지만, $는 예약된 문자이므로 URL 사양에 따라 유효한 URL이 아닐 수도 있다는 점에 유의하세요. 이로 인해 특정 서버나 API에 문제가 발생할 수 있습니다.

    상호작용 중인 서버나 API를 제어하고 쿼리 문자열에 $字符的URL,则此方法应该有效。否则,通常最安全的做法是使用URLSearchParams 문자가 포함된 URL을 처리할 수 있다고 확신하는 경우 이 방법이 작동할 것입니다. 그렇지 않은 경우 일반적으로 URLSearchParams에서 제공하는 자동 인코딩을 사용하는 것이 가장 안전합니다.

    이 솔루션이 귀하에게 적합한지 또는 추가 지원이 필요한지 확인하십시오.

    회신하다
    0
  • 취소회신하다