2010-09-10 147 views
0

我想用我的网址的格式如下网址:包括内部URL

http://localhost/{url}/{options}/{hash} 

但由于URL将是很奇怪的一个URL内的URL,我将如何编码?

我正在考虑用十六进制编码它,因为在.net中的URL编码给了我一些奇怪的结果,不能在一个url内工作。但我真的不知道这里最好的办法是什么。

我想保留url的结构,不包括任何查询字符串。

回答

2

您可以使用System.Web.HttpUtility.UrlEncode方法来编码部分url(甚至另一个url)。

如果它是路径的一部分而不是查询字符串,UrlPathEncode应该完成这项工作。

+0

只有在与查询字符串一起使用时才起作用。不带有url部分。 – Andreas 2010-09-10 11:09:33

+0

你是对的,更正;) – 2010-09-10 11:13:41

+0

将尽快尝试,谢谢。如果它能正常工作,请将您的答案标记为已解决:) – Andreas 2010-09-10 11:16:05

0

如果你不想querystring部分,那么你为什么要编码url部分?

下面的网址是完全有效的: - “”

http://localhost/www.stackoverflow.com/1234/abc 

在本RFC,人物表示: “” 和在URI中是允许的。

+0

如果url(在url内)包含查询字符串,那将无法工作。 – Andreas 2010-09-12 08:06:50

+0

你提到你不想包含查询字符串。如果你想在路径中包含查询字符串数据,那么你可以自己开发一个编码方案,就像用“..”替换“&”或用“..-”替换“=”。虽然这不是一个理想的解决方案,但它可能会起作用。再次阅读我的答案中提到的RFC会给你一个想法,如何为你的情况制定一个计划。 – Zafer 2010-09-13 10:18:33