2013-10-13 81 views
2

我想在我的strings.xml中保留可讀的URL。某些URL包含符號&。當然,我可以用%26來代替。但是,當我將url編碼應用於字符串時,%26將被替換爲%2526,我將得到錯誤的url。有什麼辦法可以避免這種情況?如何在android xml資源文件中保留URL?

Upd。我應該擁有的網址,讓另一個URL(從資源文件中獲取的參數),如:

http://twitter.com/intent/tweet?text=Some+text&url=http%3A%2F%2Fstackoverflow.com 
+0

將網址放在String.xml中並在運行時顯示,我認爲在這種情況下,如果您將url放在String.xml中,在這種情況下,您必須將許多charectors替換爲url,而某些時間包含任何不可預知的符號,例如「 「,」_「,」$「,」&「等...這會增加你的條件數量,這是headech任務,你應該在comman類上做出更好的表現,其中的所有url將會由字符串數據類型定義,在這種情況下,您不必更換charectors等...... – Aamirkhan

回答

3

您應該編碼&&

一些其他有用的,在XML預定義的實體有:

  • "一個雙引號("
  • &lt;爲 「小於」 號(<
  • &gt;一個「更大(>

請注意,您應該將尾部冒號(;)。

這裏是complete list爲html轉義字符。

+0

但它也行不通 - 'URLEncoder.encode(「http://example.com?a=1 & b = 2」)'返回'http%3A%2F%2Fexample.com%3Fa%3D1%26amp%3Bb%3D2',即'&'被替換爲'%26amp%3B'。 –

+0

@LA_ - 你不需要做'URLEncoder.encode()' - 你可以直接存儲它 - 只需編碼符號。 – kamituel

+0

我已經更新了我的問題,以證明我必須應用'URLEncoder.encode()'。在我的例子中'http:\\ stackoverflow.com'應該存儲在資源文件中。 –

0

@ kamituel答案是正確的,另一方面,如果你真的需要它們作爲人類可讀的,你可以將它們存儲在靜態最終變量中。