【问题标题】:Load HTML Content to android RichEditText将 HTML 内容加载到 android RichEditText
【发布时间】:2014-12-04 06:06:41
【问题描述】:

我在我的项目中使用 cwac-richedit 图书馆
用户在其中写一些文本,应用程序会将用户输入保存为 HTML 内容

我的问题是当我想向用户显示保存的内容时,它显示为 HTML 内容。 我试过这个:
Spanned description = Html.fromHtml(stepContent);
rtxtStepDescription.setText(description);

它看起来像这样

已编辑: 这是用户在edittext中写的内容:

应用程序将此内容保存为Html.toHtml(rtxtStepDescription.getEditableText())

之后,下次我打开我的应用程序时,应用程序会加载以下内容:
<p dir="rtl"><u>&#1587;&#1604;&#1575;&#1605;</u><br> &#1605;&#1578;&#1606; <i>&#1570;&#1586;&#1605;&#1575;&#1740;&#1588;&#1740;</i> &#1576;&#1585;&#1575;&#1740; <b>&#1587;&#1608;&#1575;&#1604;</b></p>

【问题讨论】:

  • 嘿,把stepContent 的值贴出来,如果我能用的话,我可以在这里试试
  • 我会在几分钟内添加一个示例
  • @Darpan 这是用户输入的示例
  • “这是应用程序加载的内容”——您是说您要传递给Html.fromHtml() 的内容吗?或者你是说这就是你从Html.fromHtml() 得到的?
  • 这是传递给Html.fromHtml () 的内容以及从中得到的内容!我不知道为什么

标签: android commonsware-cwac


【解决方案1】:

想通了。这些是HTML entities,在线查看一位转换器here

使用来自Apache commons lang的Apache StringEscapeUtils

import org.apache.commons.lang.StringEscapeUtils;
...
String withCharacters = StringEscapeUtils.unescapeHtml(yourString);

JavaDoc 说:

取消转义包含实体的字符串转义为包含 与转义对应的实际 Unicode 字符。支持 HTML 4.0 实体。

例如,字符串"&amp;lt;Fran&amp;ccedil;ais&amp;gt;" 将变为"&lt;Français&gt;"

如果一个实体未被识别,则将其单独放置,并逐字插入结果字符串中。例如"&amp;gt;&amp;zzzz;x" 将变为 "&gt;&amp;zzzz;x"

answer here中所述

【讨论】:

  • 它起作用了,因为我在前两行中提到的原因:P
猜你喜欢
  • 2017-01-18
  • 2023-03-20
  • 1970-01-01
  • 2011-08-04
  • 2014-12-19
  • 1970-01-01
  • 2012-11-22
  • 2016-08-11
  • 1970-01-01
相关资源
最近更新 更多