2015-09-26 180 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 –