我有一个变量,比如A= drug & medicare $12/$15
我需要将其分配给一个文本框,但只有'药物'是张贴的服务器。剩余的数据被截断。
this.textbox.text= request.querystring["A"].tostring();
a="foo&bar$12"以下语句无效:
http://example.com?a=foo&bar$12
,符号是一个保留字符,它分隔查询字符串变量。在将值发送到该页之前,您需要对值进行百分比编码。
也,是HTML/XML中的保留字符。我建议阅读百分比编码和html编码
我相信你对HTML实体有问题。您需要在选择的工具中仔细阅读HTML转义。&
不能在HTML中站立,因为它开始一个实体序列-它需要用&
代替。如果没有指定你正在使用的工具链(根据@Richard的评论),我们无法真正建议最好的方法。
EDIT:现在我重读了你的问题,似乎A不是一个变量,而是一个查询参数:)阅读理解失败。无论如何,在这种情况下存在类似的问题:&不是查询参数的有效字符,并且需要URL转义。再一次,如何准确地做到这一点是在你的工具链的文档中,但本质上&将需要替换为%26
。加号也不允许使用(或者它有另一种含义);还有一些是可以容忍的(但是有更好的写法)。
这看起来或多或少像ASP。. NET伪代码,所以我将诊断您的问题为查询字符串需要URL编码。查询字符串中的键/值对以"&"分隔。. NET(以及其他web平台)会自动为您解析出键值对。
在这种情况下,&号终止了"A=…"键/值对的值。如果您可以对将用户带入页面的链接进行URL编码,那么问题将得到解决。如果实际使用ASP。. NET,你可以使用httutility . urlencode()方法:
string myValue = Server.UrlEncode("drug & medicare $12/$15");
您将以此查询字符串结束:A=drug%20%26%20medicare%20%2412%2F%2415