用URL编码的数据替换它们的符号

本文关键字:符号 替换 数据 URL 编码 | 更新日期: 2023-09-27 18:03:11

你好,我正试图格式化我的Url,以便它看起来更用户友好。到目前为止,我设法用"-"代替空格,但似乎有像#和:这样的特殊字符显示为编码数据。这就是我的意思:

http://localhost:51208/Home/Details/C%23-in-Depth%2c-Second-Edition/BookId-3

"#"符号表示%23,","表示%2c。我希望能够用它们的原始符号替换这种编码。

这样的方法存在吗?

用URL编码的数据替换它们的符号

哦,不,你绝对不想用#代替它。这个符号在url中有特殊的含义。它表示fragment identifier,它的值永远不会发送到服务器。这基本上意味着,如果你的url中有一个#符号,它后面的一切都被截断,永远不会发送到服务器。您可以查看following post,看看StackOverflow使用什么来格式化问题标题中的空格。您可以通过这个replace函数来运行字符串,以确保没有留下危险字符。

我还建议您阅读Scott Hanselman的following blog post,他在那里介绍了如果您试图在url的路径部分发送特殊字符,您可能遇到的IIS的各种情况。我在这里引用他的结论:

在所有这些努力得到疯狂的东西在请求路径,它是值得一提的是,只需将值保留为查询的一部分字符串(还记得这篇文章开始的时候吗?)更容易,更干净、更灵活、更安全。

只要将"#"替换为"sharp" ":"替换为"-"就可以了,你不能把这些特殊字符直接放在url中