2011-11-28 5 views
0

저는 A= drug & medicare $12/$15과 같은 변수가 있습니다.

텍스트 상자에 할당해야하지만 '약물'만 서버에 게시됩니다. 나머지 데이터는 잘립니다.

this.textbox.text= request.querystring["A"].tostring(); 
+1

StackOverflow에 오신 것을 환영합니다. 일반적으로 여기에 몇 가지 코드가 포함되어 있습니다. 어떤 코드를 포함 시켜서 어떤 플랫폼을 사용하고 있는지 알 수 있습니까? PHP입니까? Ruby on Rails? Asp.NET? –

+0

언어에 대한 태그를 추가하면 더 많은 도움을 얻을 수 있습니다. – stema

답변

0

나는 HTML 항목에 문제가 있다고 생각합니다. 선택한 도구에서 HTML 이스 케이 핑을 읽어야합니다. &은 엔티티 시퀀스를 시작하기 때문에 HTML로 표시 할 수 없습니다. 즉, &으로 바꿔야합니다. @ Richard의 의견에 따라 사용하고있는 툴체인을 최소한 지정하지 않으면 최선의 방법을 제안 할 수 없습니다.

편집 : 이제 질문을 다시 읽었습니다. A는 변수가 아니라 쿼리 매개 변수입니다. :) 이해력에 문제가 있습니다. 어쨌든이 경우 비슷한 문제가 존재합니다 : &은 검색어 매개 변수에 유효한 문자가 아니며 URL 이스케이프 처리가 필요합니다. 다시 말하지만, 정확히 어떻게 할 것인지는 귀하의 툴체인에 대한 문서에 있지만, 본질적으로 &은 %26으로 대체해야합니다. 더하기 부호도 허용되지 않습니다 (또는 다른 의미가 있습니다). 다른 것들은 용납됩니다 (그러나 그것들을 쓰는 더 좋은 방법이 있습니다).

0

다음은 = "foo는 & 바 $ 12"유효하지 않습니다 :

http://example.com?a=foo&bar$12 

& 기호는 예약 문자, 그것은 쿼리 문자열 변수를 seperates. 값을 해당 페이지로 보내기 전에 백분율로 인코딩해야합니다.

또한 &은 HTML/XML의 예약 된 문자입니다. 백분율 인코딩 및 html 인코딩을 읽는 것이 좋습니다.

+0

안녕하세요 덕분에 URL을 방해하는 무리가 가능합니다. – user352588

0

ASP.NET 의사 코드와 비슷해 보이므로 URL 인코딩이 필요한 쿼리 문자열로 문제를 진단 할 것입니다. 쿼리 문자열의 키/값 쌍은 앰퍼샌드 (&)로 구분되며 ASP.NET (다른 웹 플랫폼과 함께)은 자동으로 키 값 쌍을 구문 분석합니다.

이 경우 앰퍼샌드는 "A = ..."키/값 쌍의 값을 종료합니다. 사용자가 페이지로 연결되는 링크를 URL 인코딩 할 수 있으면 문제가 해결됩니다. 실제로 ASP.NET을 사용하는 경우, 당신은에 대한 HttpUtility.UrlEncode() method를 사용할 수 있습니다

string myValue = Server.UrlEncode("drug & medicare $12/$15"); 

대신이 쿼리 문자열 될 겁니다 : A = 약 % 20 % 26 % 20medicare % 20 % 2천4백12% 2 층 % 2415