2014-11-12 5 views
0

자바 스크립트에서 다음 URL을 호출하십시오.쿼리 문자열에 "&"및 "+"사용

var par = "Participant.aspx?ID=" + Id + "&NAME=" + Name+ "&FIRSTNAME=" + Firstname; 

가끔 이름이나 성 이름에 "앰퍼샌드"또는 "플러스"기호가 포함되는 경우가 있습니다.

 Dim Name As String = Request.QueryString("NAME") 
     Dim Firstname As String = Request.QueryString("FIRSTNAME") 

내 문제는 그 쿼리 문자열은 다음 기호가 공간으로 변환하는 "플러스"기호를 포함하는 경우 ('')와 경우 :

For Example:  Richard & Michael or Richard + Michael 

은 서버 측에 나는 같은 Qeurystring 읽기 Qeurystring에 "앰퍼샌드"가 포함되어 있으면 "앰퍼샌드"다음의 모든 항목이 삭제됩니다.

나는 여러 가지를 시도했다. Reqeust.Querystring 대신 Request.Form 및 Server.URLEncode 시도했다. 그러나 둘 다 적합하지 않습니다.

URLEncode를 사용하면 쿼리 문자열에 이름과 "더하기"기호 사이에 공백이 있으면 공백도 "더하기"기호로 변환됩니다.

해결 방법이 있습니까?

+4

*이 문제는 쿼리 문자열은 이름과 "플러스"기호, 공간 사이에 공백이 포함 된 경우 또한 "플러스"기호로 변환됩니다. * - 이것이 * 일어날 것입니다. 더하기 기호는 공백을 나타냅니다. 인코딩 된 더하기 기호는 더하기 기호를 나타냅니다. 이미이 문제를 해결 한 것 같습니다. –

+0

@AntP : 질문을 할 때, 태그는'javascript'와'C#'입니다. 하지만 예, 코드 샘플 * VB.Net입니다. :-) –

답변

1

쿼리 문자열의 내용 (이름과 값 모두)은 올바르게 URI 인코딩되어야합니다. 정확히에

var par = "Participant.aspx?ID=" + encodeURIComponent(Id) + 
      "&NAME=" + encodeURIComponent(Name) + 
      "&FIRSTNAME=" + encodeURIComponent(Firstname); 

(기술적으로는, 다시, 이름이 너무 인코딩되어야하지만 "ID", "이름"및 "FIRSTNAME"인코딩 : 그 라인은 자바 스크립트에있는 경우,이 같은 것을 할 거라고 같은 일이, 그래서 나는 그들에 encodeURIComponent을 사용하지 않은)

를 참조 AntP's comment 더하기 기호와 공간 재 :.에서는 URLEncode와

는 "쿼리 문자열은 이름 사이에 공백이 포함 된 경우 그 문제가

입니다 및 "더하기"기호는 공백도 "더하기"기호로 변환됩니다. " - 그게 무엇입니까 해야합니다. 더하기 기호는 공백을 나타냅니다. 인코딩 된 더하기 기호는 더하기 기호를 나타냅니다.

+1

흠, 캐시 문제라고 생각합니다. 캐시를 삭제하고 예상대로 작동합니다 :). 고맙습니다 – Paks

1

당신은 미리 정의 된 를 UrlEncodeURLDECODE 방법을 사용할 수 있습니다. 이 메서드는 쿼리 문자열에 특수 문자를 전달하는 데 도움이됩니다. 이 예를 살펴보십시오.

UrlDecodeUrlEncode
희망이 도움이 될 것입니다. 문자열을 쿼리를 전달하기 전에

그냥 교체 :

-1

헤이 또 다른 방법이

.Replace를 ("&", "% 26"); 다른 페이지에

은 자동 &으로 26 %를 읽을 수 있지만 다음 또한이 대체 단지 다시 &로 읽을 수 없습니다 :

합니다.바꾸기 ("% 26", "&");

2

당신은 쿼리 문자열 값에 encodeURIComponent를 사용하고 쿼리 문자열로 설정할 수 있습니다

에서는 URLEncode와
var url = encodeURIComponent($("#<%=hdnPageQuery.ClientID%>").val()); 
    var title = encodeURIComponent(document.title); 
    var redirectUrl = $("#<%=hdnPageTarget.ClientID%>").val(); 
    var outputUrl = redirectUrl + '?url=' + url + '&title=' + title; 
    $('#ancSendToFriendLink').attr('href', outputUrl);