【发布时间】:2010-09-10 10:57:51
【问题描述】:
我想使用以下格式的网址:
http://localhost/{url}/{options}/{hash}
但是由于 url 在 url 中使用 url 会很奇怪,我将如何对其进行编码?
我正在考虑将其编码为十六进制,因为 .net 中的 url 编码给了我一些在 url 中不起作用的奇怪结果。但我真的不知道这里最好的方法是什么。
我想保留 url 的结构,不包括任何查询字符串。
【问题讨论】:
我想使用以下格式的网址:
http://localhost/{url}/{options}/{hash}
但是由于 url 在 url 中使用 url 会很奇怪,我将如何对其进行编码?
我正在考虑将其编码为十六进制,因为 .net 中的 url 编码给了我一些在 url 中不起作用的奇怪结果。但我真的不知道这里最好的方法是什么。
我想保留 url 的结构,不包括任何查询字符串。
【问题讨论】:
您可以使用System.Web.HttpUtility.UrlEncode 方法对部分url(甚至是另一个url)进行编码。
如果它是路径的一部分而不是查询字符串,UrlPathEncode 应该可以完成这项工作。
【讨论】:
如果您不想要查询字符串部分,那为什么要对 url 部分进行编码?
以下网址完全有效:
http://localhost/www.stackoverflow.com/1234/abc
正如RFC 中所述,字符、“-”和“.”允许在 URI 中使用。
【讨论】: