【问题标题】:Replace char in string not working替换字符串中的字符不起作用
【发布时间】:2015-06-24 22:10:12
【问题描述】:

我正在尝试替换字符串中的哈希字符,但以下内容不起作用

 string address = "Blk 344, Jurong West, Street 11, #02-111";
 address.Replace("#","%23");

任何想法都让我发疯了

查询字符串已满

http://localhost:54965/SKATEZ/thankyou.aspx?firstname=Fiora&lastname=Ray&address=Blk%20344,%20Jurong%20West,%20Street%2011,%20#02-111&total=22&nirc=S6799954H&country=Singapore&orderid=85&postalcode=746112

我构造url如下

string url = "thankyou.aspx?firstname=" + firstname + "&" + "lastname=" + lastname + "&" + "address=" + HttpUtility.EscapeDataString(address) + "&" + "total=" + total + "&" + "nirc=" + tbID.Text + "&" + "country=" + ddlCountry.SelectedValue + "&" + "orderid=" + orderid + "&" + "postalcode=" + tbPostalCode.Text;
Response.Redirect(url);

【问题讨论】:

标签: c#


【解决方案1】:

试试

address = address.Replace("#","%23");

C# 中的字符串是immutable:

字符串是不可变的——字符串对象的内容在对象创建后不能更改,尽管语法看起来好像你可以这样做。例如,当您编写此代码时,编译器实际上会创建一个新的字符串对象来保存新的字符序列,并将该新对象分配给 b。然后字符串“h”就可以进行垃圾回收了。

【讨论】:

  • 我在做这个字符串地址 = tbAddr.Text;地址 = 地址。替换(“#”,“%23”);但是当我在浏览器中的查询字符串中执行 %23 时,它仍然会记住哈希值,任何想法都可以正常工作
  • 它仍然无法正常工作我在他们的代码中包含了我的完整网址
  • 如何构建 URL?
  • @davidbu 也许你的意思是Uri.UnescapeDataString,而不是HttpUtility.UnescapeDataString。它将%23 转换回#。只需尝试var s = Uri.UnescapeDataString("%23"); 并检查结果。
【解决方案2】:

使用 System.Uri.EscapeDataString(string) 应该可以解决您的问题:

var urlbuilder = new StringBuilder();

urlbuilder.AppendFormat("thankyou.aspx?firstname={0}", firstname);
urlbuilder.AppendFormat("&lastname={0}", lastname);
urlbuilder.AppendFormat("&address={0}", System.Uri.EscapeDataString(address));
urlbuilder.AppendFormat("&total={0}", total);
urlbuilder.AppendFormat("&nirc={0}", tbID.Text);
urlbuilder.AppendFormat("&country={0}", ddlCountry.SelectedValue);
urlbuilder.AppendFormat("&orderid={0}", orderid);
urlbuilder.AppendFormat("&postalcode={0}", tbPostalCode.Text);

Response.Redirect(urlbuilder.ToString());

(使用 System.Text.StringBuilder 编写您的 url 使代码更具可读性)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2016-02-15
    • 2016-10-05
    • 2012-07-08
    • 2011-08-12
    相关资源
    最近更新 更多