我有这段代码:
string encodedKeywordsQueryValue = HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString["keywords"]);
query = query.Replace(HttpContext.Current.Request.QueryString["keywords"], encodedKeywordsQueryValue);
,其中
HttpContext.Current.Request.QueryString["keywords"] = "abc& abc"
和
encodedKeywordsQueryValue=abc%26+abc
我的旧字符串值未被新字符串替换。
有人可以建议我这样做吗?我尝试过删除和插入字符串方法的组合,但没有得到理想的结果。
请帮助我。
答案 0 :(得分:0)
你应该在替换的左侧有一个确切的字符串。它并不像“喜欢”那样行事。见下面的例子:
string str1 = "abc";
string str2 = "abc&def";
str2.replace("d", str1);
结果将是:
abc&abcef
希望有所帮助
答案 1 :(得分:0)
HttpContext.Current.Request.QueryString ["关键字"] ="&ABC放大器; ABC"和 encodedKeywordsQueryValue = ABC%26 + ABC
阅读replace方法的文档会告诉你它不知道URL编码而且不关心 - 它是一个字符串方法。因此,处理未编码的字符串。没有类似的风格行为 - 这是一个精确的匹配和替换"。
我建议你对这种行为进行单元测试,然后计算出你希望它如何 - 然后你可以在这里做一个以某种方式基线有用的帖子,因为它有一个确切的例子,其中行为不起作用,不是我们要解决的谜团。