는 RFC 3986에 따라 다음 문자를 보유하고 퍼센트 부호화 그들의 소유 사용하므로보다 URI 다른에서 사용할 수 있도록해야된다 :/?#[]@!$&'()*+,;=
{및} (중괄호)와 같은 문자를 URL에 백분율로 인코딩해야합니까?
를 더 나아가 특별히 제한없이 일부 문자를 지정 a-zA-Z0-9\-._~
이 (오해를 방지하기 위해) 및 (읽기 쉽) 예약되지 않은 문자를 인코딩하지 일반적으로 하나가 예약 된 문자를 인코딩해야한다는 분명한 것 같지만 방법 중 하나의 카테고리에 속하지 않는 문자가 처리해야 하는가? 예를 들어 {
및 }
은 두 목록에 나타나지 않지만 표준 ASCII 문자입니다.
현대적인 브라우저를 살펴보면 때로는 다른 행동을하는 것으로 보입니다. 예를 들어, 웹 브라우저의 주소 표시 줄에 URL https://www.google.com/search?q={
을 붙여 고려 :
- 크롬 34.0.1847.116의 m가 변경되지 않습니다.
- Firefox 28.0은 변경되지 않습니다.
- Internet Explorer 9.0에서는 변경되지 않습니다. 한 페이스트
https://www.google.com/#q={
가 (쿼리 문자열보다는 조각/해시의 문자 부분을, "검색"제거하고#
에?
을 변경하는 경우 - 사파리 5.1.7은
https://www.google.com/search?q=%7B
그러나
로 변경
- 크롬 34.0.1847.116의 m은 (
- 파이어 폭스 28.0이 변경되지 않습니다) 자바 스크립트를 통해
https://www.google.com/#q=%7B
로 변경합니다) 우리는 것을 알게됩니다. - Internet Explorer 9.0에서는 변경되지 않습니다. 비동기 요청을 수행하는 자바 스크립트를 사용하는 경우
- 사파리 5.1.7은 URL이 퍼센트 아니다 (즉 this MDN example가
?q={
의 URL을 사용하도록 수정하여), 또한 (자바 스크립트를 실행하기 전)https://www.google.com/#q=%7B
에
그것을 변경 - 자동으로 인코딩됩니다. (필자는 XMLHttpRequest의 API는 URL이 사전/인코딩 이스케이프 가정하기 때문에이 추측하고있다.)
내가 (기괴한 고객 요구 사항과 관련된 이유)의 파일 이름 부분에 {
및 }
을 사용하고 싶습니다 URL을 (1) 깨뜨리지 않고 이상적으로 (2) 최신 브라우저의 웹 검사기/디버거의 네트워크 패널에서 못생긴 모양의 백분율로 인코딩 된 항목을 만드는 것.
흠, 내가 RFC2396을 대신하기로되어 있었기 때문에 흠, 나는 RFC3986의 대답을 기대했지만, 나는 당신의 응답에 감사드립니다. 부록 D는 문자에 대한 섹션 2가 어떤 문자를 예약했는지, 그들이 예약되었을 때, 그들이 예약 된 이유를 설명하기 위해 다시 쓰여졌다 고 말합니다. 일반 문법에 의해 구분 기호로 사용되지 않을 때에도 ... 아이러니 컬하게도 그것은 나를 모호하게 만드는 재 작성입니다. – iX3