URL 매개변수 설정 시 특수 문자 인코딩
P粉348915572
2023-08-17 11:25:49
<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>
필요하고 서버에서 지원하므로 마지막에 수정하면 됩니다
귀하의 경우
$
字符被编码为%24
,因为它是URL中的保留字符。URLSearchParams
对象的set
메소드는 결과 문자열이 유효한 URL인지 확인하기 위해 이러한 문자를 자동으로 인코딩합니다.그러나
으아악$
문자를 있는 그대로 포함하려면 쿼리 문자열을 수동으로 작성하여 자동 인코딩을 우회할 수 있습니다.이렇게 하면 원하는 결과가 나오지만,
$
는 예약된 문자이므로 URL 사양에 따라 유효한 URL이 아닐 수도 있다는 점에 유의하세요. 이로 인해 특정 서버나 API에 문제가 발생할 수 있습니다.상호작용 중인 서버나 API를 제어하고 쿼리 문자열에
$
字符的URL,则此方法应该有效。否则,通常最安全的做法是使用URLSearchParams
문자가 포함된 URL을 처리할 수 있다고 확신하는 경우 이 방법이 작동할 것입니다. 그렇지 않은 경우 일반적으로URLSearchParams
에서 제공하는 자동 인코딩을 사용하는 것이 가장 안전합니다.이 솔루션이 귀하에게 적합한지 또는 추가 지원이 필요한지 확인하십시오.