2015-09-26 178 views
2

我目前正在開發一個與服務器同步的android應用程序。我有一個PHP腳本,向我發送來自使用JSON編碼的服務器的數據庫信息。此外,德國ä,ö,ü,ß和其他字符是HTML轉義&奧姆爾,& ouml,& uuml等。當我的android應用程序接收數據時,我想解碼轉義字符(當然)。如何在Android中替換JSON字符串中的HTML轉義字符

我搜索了關於如何替換Android中的html轉義字符,並從org.apache.commons.lang庫中找到HTML.fromHTML(htmlString).toString()StringEscapeUtils.unescapeHtml3(htmlString)。然而,兩者都沒有改變字符串。

應用程序被接收的字符串的一個例子:{"categories":[[0,"Rollen f&uumlr vergrabene Karte"]],"roles":[],"sets":[],"set_roles":[],"teams":[]}

我也只嘗試解碼內的部分,但它也不能工作。那麼看起來像這樣:[[0,"Rollen f&uumlr vergrabene Karte"]]

如何解碼這些字符,而不必更換所有的每一個人?

回答

2

Html.fromHtml應該完成這項工作。

然而,看着你顯示的json,顯然服務器錯誤地編碼了HTML轉義。分號不被追加,&uumlr應該是&uumlr;

我已經檢查使用轉義úü,它的工作。

String json = "{\"categories\":[[0,\"Rollen fúoobar tüoo vergrabene Karte\"]],\"roles\":[],\"sets\":[],\"set_roles\":[],\"teams\":[]}"; 

System.out.println("=======>" + Html.fromHtml(json).toString()); 
+0

呵呵,現在你提到它了,分號去哪裏了......我把它插入到數據庫中肯定。那麼我會自己解決。謝謝:) – findusl

+1

沒有問題,有時當我們調試時,我們忘記了看這些簡單的細節。 祝你好運! :d –