Html.fromHTML删除了双倍空格

Mik*_*ery 4 android

也许这不是一个错误,因为文档没有详细说明fromHTML()究竟是什么,但它对我来说仍然是一个问题.如果提供的字符串按顺序包含两个或多个空格,则fromHTML()删除除1之外的所有空格:

Html.fromHtml("Test   123").toString()
     (java.lang.String) Test 123
Run Code Online (Sandbox Code Playgroud)

如果我用 它替换空格似乎表现得如预期的那样,但是让我对程序的其他部分感到悲伤:

Html.fromHtml("Test  123").toString()
     (java.lang.String) Test  123
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?

dan*_*roa 9

是的,因为这就是Html的行为方式.

做这样的事情:

String myText = "Test   123";
Html.fromHtml(myText.replace(" ", " ")).toString()
Run Code Online (Sandbox Code Playgroud)

这样,它会保留字符串的原始值.


Kii*_*ani 3

这就是 HTML 通常处理空白渲染的方式。

来自HTML 规范重点是我的):

请注意,源文档中单词之间的一系列空格可能会导致完全不同的呈现的单词间距(PRE 元素的情况除外)。特别是,用户代理在生成输出字间空间时应折叠输入空白序列。即使没有语言信息,这也可以而且应该完成


fromHtml函数的目标是根据所包含的 HTML 直观地呈现文本,因此它会尽可能严格地遵循 HTML 呈现规则。

如果您想准确保留空白,您可以查看是否fromHtml()支持该<pre>标签?