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