如何防止Html.fromHtml修剪空白

在一个Android Java项目中,我有一个像这样的字符串(尽管在每一边都有不同数量的空白):

String foo = " foo bar " 

字符串两边的空格是重要的,因为实际的字符串包含HTML语法高亮的缩进代码。

当我通过Html.fromHtml传递字符串时,这个开始和结束空白被删除,但我需要保留在那里的空白:

 Html.fromHtml(foo).toString() // "foo bar" - I want " foo bar " 

如何通过Html.fromHtml调用来保留字符串两边的空格?

尝试使用TextUtils.htmlEncode(str)。

这个方法将会转义所有的html字符串。

https://developer.android.com/reference/android/text/TextUtils.html#htmlEncode(java.lang.String)

Yazan的建议已经足够了,但是既然你说过这个字符串是动态生成的,你可以总是以新生成的字符串s为例,并使用concat()方法。例如s.concat(“&nbsp”);

由于Html.fromHtml()将字符串解析为html标签,而内容可能是您想要使用编码字符的空格,

在你的代码中试试这个

 String foo = " foo bar  "; 

注意:重复  尽可能多的空间,你需要显示。

编辑:如果您从其他位置获取字符串,则可以用空格替换空格  在通过之前

 String foo = getMyFoo(); foo = foo.replaceAll(" "," "); 

为了保留起始空白,这个Kotlin代码似乎可以工作,并且可能也不会难以适应以结束空白:

 fun replaceWithNonBreakingAtStart(str: String) = (1..(str.takeWhile { it == ' ' }.count())).map { " " }.joinToString("") + str.trimStart() 
Interesting Posts