簡體   English   中英

HttpUtility.UrlEncode-減號而不是加號?

[英]HttpUtility.UrlEncode - Minus instead of plus?

我處於一個可以找到一些路徑的環境中。 該路徑可能類似於“ jadajada.com/我的Site.html”。

我使用HttpUtility.UrlEncode對URL進行編碼,這很棒。 但是,我有一個問題,就是每當我有一個空格時,它都會用一個“ +”號代替它。 我需要一個“-”號。

此方法可以執行此任務嗎? 如果是這樣,則采用哪種編碼方式。

(是的,我知道您可以使用string.Replace,但是請暫時避免該解決方案;-)

"-"代替空格並不是真正的編碼 ,因為沒有標准的解碼器。 "+"是正確的。

但是,如果這僅用於顯示,並且只要您的代碼不依賴此值(例如,為了進行精確的子彈匹配(期望空格 )),您就可以簡單地執行.Replace(" ","-")然后再編碼。 在這種有損耗的情況下,您可能還想替換其他一些,截斷過長的字符串等。

一旦有-對其進行編碼,就應該是無操作(即不會改變)。

空格可以URL編碼為+%20 這是對空格進行編碼的方式,因此沒有將其編碼為任何其他任意字符的內置方法。

如果要用-代替空格(不是編碼),它就是替換,因此Replace方法將適合使用。

UrlEncoding永遠不會單獨用-代替空格,因為這不是URL內空格的表示。 它將使用+或%20。

因此,如果您實際上想執行此操作,那么我認為string.Replace是您的最佳選擇,但是如果您不希望結果URL中包含空格,則可能應該先刪除URL中的空格,然后再對其進行編碼。

您希望將其從+更改為-的原因之一是,當URL包含+時,URL重寫將不起作用(除非您完全禁用雙重轉義)。 將+更改為-更容易

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM