답변:
이 답변에 따라 여기에 : str='foo%20%5B12%5D'
인코딩 foo [12]
:
%20 is space
%5B is '['
and %5D is ']'
이를 퍼센트 인코딩 이라고 하며 url 매개 변수 값에서 특수 문자를 인코딩하는 데 사용됩니다.
편집 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURI#Description 을 읽는 동안 많은 사람들이 동일한 검색을하는 이유가 나에게 발생했습니다. 페이지 하단의 참고 사항을 참조하십시오.
또한 URL에 대한 최신 RFC3986 을 따르고 자 할 경우 대괄호를 예약하고 (IPv6의 경우) URL의 일부가 될 수있는 (예 : 호스트)를 형성 할 때 인코딩되지 않으면 다음이 도움이 될 수 있습니다.
function fixedEncodeURI (str) {
return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}
이 질문에 걸려 넘어 질 때 사람들이 문제를 해결하는 데 도움이되기를 바랍니다.
그들은 대표 [
하고 ]
. 인코딩을 "URL 인코딩"이라고 합니다.
글쎄, 그것은 일반적인 URL 인코딩입니다
그래서 그들은 [
각각]
간단히 살펴 보려면 이 온라인 도구를 사용하여 퍼센트 인코딩 / 디코딩 할 수 있습니다 .
데이터는 아마도 다음과 같은 웹 양식에서 게시되었을 것입니다 (그러나 훨씬 더 복잡 할 것입니다).
<form action="http://example.com" method="post">
User login <input name="user[login]" /><br />
User password <input name="user[password]" /><br />
<input type="submit" />
</form>
메소드가 "post"대신 "get"인 경우 제출 단추를 클릭하면 다음과 같은 URL로 이동합니다.
http://example.com/?user%5Blogin%5D=username&user%5Bpassword%5D=123456
또는:
http://example.com/?user[login]=username&user[password]=123456
다른 쪽 웹 서버는 user[login]
and user[password]
매개 변수를 가져 와서 해당 값이 포함 된 user
개체 login
및 password
필드 로 만듭니다 .
이 기호가 URL에서 나타나는 이유는 중요하지 않습니다. https://www.php.net/manual/en/function.parse-str.php#76792 에서 구체적으로 다음을 참조 하십시오 :
parse_str('foo[]=1&foo[]=2&foo[]=3', $bar);
위의 내용은 다음과 같습니다.
$bar = ['foo' => ['1', '2', '3'] ];
그리고 쿼리 변수를 배열로 분리하는 방법은 무엇입니까 (적어도 PHP에서는).