我有一个简单的问题:一旦我检索到邮件文本,有时会发生Html.fromHtml
无法正确解析字符串的情况。
我给你举个例子。这是 HTML 字符串:
––––&
它需要是这样的:
––––––––––––––––––––––––––––––––––––––––––</p>
Android中有没有办法实现这一点?我需要使用正则表达式吗?
非常感谢。
您示例中的字符串是–––&
(字面意思)的 HTML 表示法,因此正确的浏览器行为是以这种方式呈现它。由于某种无法从描述中猜到的原因,一些软件应用了双重编码,即首先将破折号“-”编码为–
,然后再将其编码&
为&
。
顺便说一句,一系列连续的破折号可能会或可能不会产生连续的线;这取决于字体。有更可靠的方法来产生长线,例如<hr>
CSS 中的元素和边框属性。
您可以使用以下方法过滤掉隐藏字符(在这种情况下):
myString = myString.replaceAll( "[\\u202C\\u202A]", "" );
之后它只是:
Html.fromHtml(myString);
它将在 html 上下文中工作。或者,如果您想要真正的破折号字符:
Html.fromHtml(Html.fromHtml(myString));
概念演示:http: //jsfiddle.net/CGzDc/(javascript,您必须在此答案中使用代码来获取 java )