html识别的各种空格

这篇博客介绍了HTML中的5种空格实体,包括不换行空格( )、半角空格( )、全角空格( )、窄空格( )以及零宽不连字(‌)和零宽连字(‍),详细阐述了它们的宽度、用途和在不同浏览器中的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其他几种空格(       ‌‍)在不同浏览器中宽度各异。

 

         

 

它叫不换行空格,全称No-Break Space,它是最常见和我们使用最多的空格,大多数的人可能只接触了 ,它是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加,

该空格占据宽度受字体影响明显而强烈。

 

         

 

它叫“半角空格”,全称是En Space,en是字体排印学的计量单位,为em宽度的一半。根据定义,它等同于字体度的一半(如16px字体中就是8px)。名义上是小写字母n的宽度。此空格传承空格家族一贯的特性:透明的,此空格有个相当稳健的特性,

就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。

 

 

         

 

它叫“全角空格”,全称是Em Space,em是字体排印学的计量单位,相当于当前指定的点数。例如,1 em在16px的字体中就是16px。此空格也传承空格家族一贯的特性:透明的,此空格也有个相当稳健的特性,

就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。

 

         

 

它叫窄空格,全称是Thin Space。我们不妨称之为“瘦弱空格”,就是该空格长得比较瘦弱,身体单薄,占据的宽度比较小。它是em之六分之一宽。

 

‌ 

 

它叫零宽不连字,全称是Zero Width Non Joiner,简称“ZWNJ”,是一个不打印字符,放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。Unicode中的零宽不连字字符映射为“”(zero width non-joiner,U+200C),HTML字符值引用为: ‌

 

‍

 

它叫零宽连字,全称是Zero Width Joiner,简称“ZWJ”,是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。零宽连字符的Unicode码位是U+200D (HTML: ‍ ‍)。

 

此外,浏览器还会把以下字符当作空白进行解析:空格( )、制表位(	)、换行(
)和回车(
)还有( )等等。

### Java 中识别 HTML 的 ` ` 空格转义符 在Java中处理HTML内容时,特别是涉及到特殊字符如不间断空格(` `)的情况,可以借助Apache Commons Lang库中的工具类`StringEscapeUtils`来进行解码操作。通过调用该类下的静态方法unescapeHtml4()能够将HTML编码后的字符串还原成原始形式。 对于特定于` `的场景,如果从网页获取的内容包含了这种特殊的空格表示法,则可以通过上述提到的方法轻松将其转化为标准的Unicode字符U+00A0,即不可断行的空白空间[^1]。 下面给出一段示范代码用于展示如何利用Jsoup结合`StringEscapeUtils.unescapeHtml4()`函数来解析并正确显示包含有` `在内的各种HTML实体: ```java import org.apache.commons.lang3.StringEscapeUtils; import org.jsoup.Jsoup; public class HtmlEntityParser { public static void main(String[] args) { String htmlContent = "<p>这是一个带有 不间断空格的例子。</p>"; // 使用Jsoup加载和解析HTML片段 Document doc = Jsoup.parse(htmlContent); // 获取<p>标签内的文本,并解除HTML实体转义 String parsedText = StringEscapeUtils.unescapeHtml4(doc.text()); System.out.println(parsedText); // 输出结果应为:“这是一个带有 不间断空格的例子。”其中“ ”代表不间断空格 } } ``` 此段代码首先引入必要的包声明;接着创建了一个模拟含有` `实体的简单HTML字符串;之后使用Jsoup完成基本的DOM树构建工作;最后一步则是应用`StringEscapeUtils.unescapeHtml4()`把所有可能存在的HTML实体都转换回它们对应的字符,从而实现了对` `的有效识别与呈现[^2]。 值得注意的是,在实际项目开发过程中,除了考虑` `之外还应该注意其他类型的HTML实体以及潜在的安全隐患(例如XSS攻击),确保应用程序具备足够的鲁棒性和安全性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lm_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值