0

我有一个变量,比如 say A= drug & medicare $12/$15

我需要将它分配给一个文本框,但只有“药物”发布到服务器。其余数据被截断。

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

3 回答 3

0

这看起来或多或少像 ASP.NET 伪代码,所以我将诊断您的问题,因为查询字符串需要进行 URL 编码。查询字符串中的键/值对由与号 (&) 分隔,并且 ASP.NET(以及其他 Web 平台)会自动为您解析出键值对。

在这种情况下,与号终止“A=...”键/值对的值。如果您可以对将用户带入您的页面的链接进行 URL 编码,则该问题将得到解决。如果实际使用 ASP.NET,则可以使用HttpUtility.UrlEncode() 方法

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

你最终会得到这个查询字符串:A=drug%20%26%20medicare%20%2412%2F%2415

于 2011-11-28T19:23:36.020 回答
0

以下对 a="foo&bar$12" 无效:

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

& 符号是保留字符,它分隔查询字符串变量。在将值发送到该页面之前,您需要对值进行百分比编码。

& 也是 HTML/XML 中的保留字符。我建议阅读百分比编码和 html 编码。

于 2011-11-28T19:15:43.983 回答
0

我相信您对 HTML 实体有疑问。您需要阅读您选择的工具中的 HTML 转义。&不能站在 HTML 中,因为它开始一个实体序列 - 它需要替换为&. 如果不至少指定您正在使用的工具链(根据@Richard 的评论),我们真的无法建议最好的方法。

编辑:现在我重新阅读了您的问题,看来 A 不是变量而是查询参数:) 阅读理解失败。无论如何,在这种情况下存在类似的问题:& 不是查询参数的有效字符,它需要 URL 转义。同样,如何在您的工具链的文档中准确地做到这一点,但本质上 & 将需要替换为%26. 加号也是不允许的(或者更确切地说,它有其他含义);其他人是可以容忍的(但有更好的方法来编写它们)。

于 2011-11-28T19:12:12.637 回答