我在一個靜靜的地方,我有一些路徑。此路徑可能類似於「jadajada.com/My Site.html」。HttpUtility.UrlEncode - 減號而不是加號?
我使用HttpUtility.UrlEncode來編碼url,這很好。但是,我有這樣的問題,即每當我有空間時,都會用「+」號代替它。我需要一個「 - 」號。
此方法可以執行此任務嗎?如果是這樣,什麼樣的編碼等。
(是的,我知道你可以使用與string.replace,但請避免解決方案,現在;-)
我在一個靜靜的地方,我有一些路徑。此路徑可能類似於「jadajada.com/My Site.html」。HttpUtility.UrlEncode - 減號而不是加號?
我使用HttpUtility.UrlEncode來編碼url,這很好。但是,我有這樣的問題,即每當我有空間時,都會用「+」號代替它。我需要一個「 - 」號。
此方法可以執行此任務嗎?如果是這樣,什麼樣的編碼等。
(是的,我知道你可以使用與string.replace,但請避免解決方案,現在;-)
與"-"
更換空間是不是真的編碼,因爲對於那些沒有標準解碼器; "+"
是正確的。
但是,如果這是僅用於顯示,只要你的代碼不依賴於這個值(例如,做一個精確的匹配塞期待空間),你可以簡單地做一個.Replace(" ","-")
在你編碼之前。在這種有損情況下,你可能還需要更換其他幾個人,截斷過長的字符串等
編碼一次它有一個-
應該是一個空操作(即它不會改變)。
謝謝! :) 很有用 – 2011-04-06 12:06:49
一個空格可以被編碼爲+
或%20
。這就是空間編碼的方式,所以沒有內置的方法將其編碼爲任何其他任意字符。
如果你想用-
代替空格而不是編碼,它將被替換,所以Replace
方法可以適用。
UrlEncoding永遠不會用自己的空間代替空間,因爲這不代表URL中的空間。它將使用+或%20。所以如果你真的想要這樣做,我認爲string.Replace
是你最好的選擇,但是如果你不想在結果URL裏面有空格,你應該先從URL中去掉空格,然後在第一名。
您希望將其從+更改爲 - 的一個原因是,當URL包含+時(除非完全禁用雙轉義),URL重寫不起作用。將+更改爲 -
爲什麼要這樣做?這就是URL編碼的工作原理。 – Steven 2011-04-06 11:47:44
爲什麼你想要把一個有效並且正確編碼的網址轉化爲一個非標準的東西(尊重所有標準(使用+符號表示空格)? – 2011-04-06 11:48:11
使用「 - 」替代中間空格中的「+」,網址更具可讀性。有人認爲它也影響SEO(這是沒有人確切知道的)。 – 2011-04-06 11:49:32