Как я могу заполнить строковую переменную запроса в текстовое поле, которое содержит &, \ и $ в нем - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть переменная, как скажем A= drug & medicare $12/$15.

Мне нужно присвоить его текстовому полю, но на сервере размещен только «наркотик». Остальные данные усекаются.

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

Ответы [ 3 ]

0 голосов
/ 28 ноября 2011

Следующее недопустимо для a = "foo & bar $ 12":

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

Символ & является зарезервированным символом, он разделяет переменные строки запроса.Вам нужно будет в процентах кодировать значение перед отправкой их на эту страницу.

Также & является зарезервированным символом в HTML / XML.Я предлагаю прочитать кодировку процентов и кодировку html.

0 голосов
/ 28 ноября 2011

Это более или менее похоже на псевдокод ASP.NET, поэтому я собираюсь диагностировать вашу проблему как строку запроса, нуждающуюся в кодировании URL. Пары ключ / значение в строке запроса разделяются амперсандом (&), и ASP.NET (вместе с другими веб-платформами) автоматически анализирует пары ключ-значение для вас.

В этом случае амперсанд завершает значение пары ключ / значение «A = ...». Проблема будет решена, если вы сможете URL кодировать ссылку, которая приводит пользователя на вашу страницу. Если на самом деле используется ASP.NET, вы можете использовать метод HttpUtility.UrlEncode () для этого:

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

Вместо этого вы получите следующую строку запроса: A = drug% 20% 26% 20medicare% 20% 2412% 2F% 2415

0 голосов
/ 28 ноября 2011

Я полагаю, у вас проблемы с сущностями HTML.Вы должны прочитать об экранировании HTML в своем инструменте выбора.& не может стоять в HTML, так как он начинает последовательность сущностей - его необходимо заменить на &.Без указания, по крайней мере, какой цепочки инструментов вы используете (согласно комментарию @ Ричарда), мы не можем предложить лучший способ сделать это.

РЕДАКТИРОВАТЬ: Теперь, когда я перечитал вашувопрос, кажется, A не переменная, а параметр запроса :) Понимание чтения не удалось.В любом случае, в этом случае существует похожая проблема: & не является допустимым символом для параметра запроса и требует экранирования URL.Опять же, как именно это сделать, описано в документации для вашей цепочки инструментов, но по сути & должно быть заменено на %26.Знак плюс также не допускается (точнее, он имеет другое значение);другие терпимы (но есть более хорошие способы их написать).

...