【问题标题】:How to replace HTML escape characters in JSON String in Android如何在Android中替换JSON字符串中的HTML转义字符
【发布时间】:2015-09-26 23:13:33
【问题描述】:

我目前正在开发一个带有服务器同步功能的安卓应用。我有一个 php 脚本从用 JSON 编码的服务器向我发送数据库信息。此外,德语 ä、ö、ü、ß 和其他字符使用 &auml、&ouml、&uuml 等进行 html 转义。在我的 android 应用程序中接收数据时,我想解码转义字符(当然)。

我在 Google 上搜索了如何在 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"]]

我怎样才能解码这些字符而不必替换所有字符?

【问题讨论】:

    标签: java android html regex html-escape-characters


    【解决方案1】:

    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());
    

    【讨论】:

    • 哦,既然你提到了,分号去哪儿了……我肯定把它插入数据库了。好吧,我会自己弄清楚。谢谢:)
    • 没问题,有时候我们在调试的时候,会忘记看这些简单的细节。祝你好运! :D
    猜你喜欢
    • 2013-05-17
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多