0

我有一个简单的问题:一旦我检索到邮件文本,有时会发生Html.fromHtml无法正确解析字符串的情况。

我给你举个例子。这是 HTML 字符串:

&#‪8211‬;&#‪8211‬;&#‪8211‬;&#‪8211‬;&

它需要是这样的:

––––––––––––––––––––––––––––––––––––––––––</p>

Android中有没有办法实现这一点?我需要使用正则表达式吗?

非常感谢。

4

2 回答 2

2

您示例中的字符串是&#8211;&#8211;&#8211;&(字面意思)的 HTML 表示法,因此正确的浏览器行为是以这种方式呈现它。由于某种无法从描述中猜到的原因,一些软件应用了双重编码,即首先将破折号“-”编码为&#8211;,然后再将其编码&&amp;

顺便说一句,一系列连续的破折号可能会或可能不会产生连续的线;这取决于字体。有更可靠的方法来产生长线,例如<hr>CSS 中的元素和边框属性。

于 2012-12-07T11:57:22.730 回答
2

您可以使用以下方法过滤掉隐藏字符(在这种情况下):

myString = myString.replaceAll( "[\\u202C\\u202A]", "" );

之后它只是:

Html.fromHtml(myString);

它将在 html 上下文中工作。或者,如果您想要真正的破折号字符:

Html.fromHtml(Html.fromHtml(myString));

概念演示:http: //jsfiddle.net/CGzDc/(javascript,您必须在此答案中使用代码来获取 java )

于 2012-12-07T20:28:51.567 回答