从JSON响应中编码HTML

时间:2018-03-27 06:18:16

标签: android encoding

我得到了一个json响应,并且必须在textView中将消息呈现给html

     {
        "CaseNote": 
        [
           {
                "ID": 575732,
                "CaseID": 218320,
                "Date": "6/15/2014 3:04:12 PM",
                "Message": "<table id='tblUpdateHistory' cellpadding='0' cellspacing='0'><tr align='left' valign='top'><td align='left' colspan='3' valign='top'><b>Case Update History<b></td></tr><tr align='left' valign='top'><td class='istColumn' align='left'><b> </b></td><td class='secondColumn' align='left' valign='top'><b>Old Value</b></td><td class='thirdColumn' align='left' valign='top'><b>Updated Value</b></td></tr><tr align='left'><td class='istColumn' align='left' valign='top'>Phone</td><td class='secondColumn' align='left' valign='top'>2034947144</td><td class='thirdColumn' align='left' valign='top'>203-494-7144</td></tr></table>",
                "Status": 2,
                "ReOpened": "False",
                "UserName": "Jill Bailey",
                "Source": "CallCenter",
                "OriginalRequest": "False"
            }
        ]
    }

我尝试了四种编码html的方法,但没有一种方法可以工作。

  String firstEncoding = TextUtils.htmlEncode(itemList.get(position).getMessage());
  String secondEncoding =  Html.escapeHtml(itemList.get(position).getMessage().toString());

  String firstOne = StringEscapeUtils.escapeHtml3(itemList.get(position).getMessage());
  String secondOne = StringEscapeUtils.escapeHtml4(itemList.get(position).getMessage());

然后我尝试在下面的方法中设置它

public static void setHtml(TextView textView, String bodyData) {
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
            textView.setText(Html.fromHtml(bodyData, Html.FROM_HTML_MODE_LEGACY));
        } else {
            textView.setText(Html.fromHtml(bodyData));
        }
    }

以上方法都没有正确编码我的html。我做错了哪种编码。

解决了一半问题。

我发现了我的错误,而不是escapeHtml4。我必须使用UnescapeHtml4,但& nbsp 不要占用空间。现在只是它没有占据下面的空间..

Case Update History
    Old Value   Updated Value
Phone   2034947144  203-494-7144

0 个答案:

没有答案