2010-09-10 89 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