也许这不是一个bug,因为文档并没有详细说明fromHTML()到底做了什么,但这对我来说仍然是一个问题。如果提供的字符串按顺序包含两个或更多空格,则fromHTML()将删除除一个空格之外的所有空格:
Html.fromHtml("Test 123").toString()
(java.lang.String) Test 123如果我用 替换空格,它看起来就像预期的那样,但在我程序的其他部分引起了我的悲哀:
Html.fromHtml("Test 123").toString()
(java.lang.String) Test 123这是预期的行为吗?
发布于 2013-05-01 09:29:12
这就是HTML通常处理空格呈现的方式。
在HTML Spec (emphasis mine)中:
请注意,源文档中单词之间的空格序列可能会导致呈现完全不同的单词间间距(除PRE元素的情况外)。尤其是,用户代理应该在产生输出单词间空格时折叠输入空格序列。即使在没有语言信息的情况下,也可以而且应该这样做
fromHtml函数的目标是根据包含的超文本标记语言可视化地呈现文本,因此它将尽可能地遵循超文本标记语言的呈现规则是有意义的。
如果你想准确地保留空白,你可以看看fromHtml()是否支持<pre>标签?
发布于 2013-05-01 09:29:05
是的,因为这就是Html的行为方式。
这样做:
String myText = "Test 123";
Html.fromHtml(myText.replace(" ", " ")).toString()这样,它将保留字符串的原始值。
发布于 2017-02-27 18:33:53
最佳方法适用于我100%
This answer可以工作,但会对<font color=#FFFFFF>Text</font>等标签样式产生副作用
要解决这个问题,只需使用下面的方法忽略一个空格:
// htmlText = "This is test";
public String fixDoubleSpaceIssue(String htmlText)
{
htmlText= text.replace(" ", " ");
htmlText= text.replace(" ", " ");
return htmlText;
}https://stackoverflow.com/questions/16311416
复制相似问题