2011-05-19 60 views
0

我正在嘗試爲Ajax站點推薦一個人類可讀的URL結構。我喜歡用短劃線或下劃線來表示多個單詞。url解碼破折號和下劃線

因此,例如:http://www.mysite/Kent-Smith/

面臨的挑戰是,我們已經在我們被認爲可能有兩種劃線或下劃線URL過濾系統一束多字的關鍵字。 (我想我們系統中的一些金融代碼使用下劃線)。

我卡在解碼方面的東西?我必須使用%20嗎?

謝謝!

+0

繼續使用 - 和_你的網址(你是真正問,%20是用於編碼的空間) – Lyke 2011-05-19 20:14:07

+0

我想我的問題提煉出來,如果我們使用破折號作爲我們的分隔符,然後我們想要製作一個url的項目之一是連字符名稱'smith-jones'什麼會發生? – dan 2011-05-19 20:24:56

回答

0

我想你會做的是:

  1. 有指定的「逃離」字符 - \(反斜槓)是常見的這種
  2. 編碼時,先用\\,然後所有替換所有\-\-,然後用破折號填充所有空格。 (順序很重要,在這裏!)
  3. 在解碼時,先更換未前面有\用空間中的所有短劃線,那麼所有\--那麼所有\\\

例如:說你的名字是Jo\hn Smith-Jones(我知道這是不可能有人在他們的名字中間的反斜槓,但...)

然後你編碼:與\\取代\Jo\\hn Smith-Jones

現在用\-替換-Jo\\hn Smith\-Jones

現在用破折號代替空格:Joh\\n-Smith\-Jones(最終結果)

這確實會導致在編碼結果中出現奇怪的反斜槓,但只有在第一位存在標點符號時纔會出現奇怪的反斜槓。

等等,還有一件事我只是想到了。反斜槓可能不適用於URL,因此可能使用不同的字符 - 過程仍然完全相同,只需用其他任何替換反斜槓即可。

快樂黑客!

相關問題