和之间的区别

Posted

技术标签:

【中文标题】和之间的区别【英文标题】:Difference between   and   【发布时间】:2012-08-12 14:49:16 【问题描述】:

谁能解释一下  and   之间的区别?

我有 html 数据以二进制形式存储在数据库中,空间可以是    或有时是  

还有一个问题是,当我使用 JSoup lib 将此 HTML 转换为纯文本时,它会正确转换它,但如果我使用 java 的 String.contains(my string) 方法。看起来具有  的HTML 数据与具有  的HTML 数据不同。反之亦然找不到字符串。

例子:

HTML1:This is my test string

HTML2:This is my test string

如果我使用 JSoup 将其转换为纯文本。它返回

HTML 1 : 这是我的测试字符串

HTML 2 : 这是我的测试字符串

但是两个字符串仍然不相同。为什么会这样?

【问题讨论】:

【参考方案1】:

是空格键的字符。

  和 &nbsp 都是非分行空格的字符。

如果您的数据来自不同的来源,则空格符号的编码可能不同。

在直接比较中,它们可能会显示为不同。

【讨论】:

【参考方案2】:

 ,只是一个空格字符而已。此字符的常规出现将在末尾折叠为 一个空格 字符。

&#160  都代表非分断空格字符,如果它们一个接一个连续出现,它们将被折叠或分解为一个空格字符。

只是,它们之间的区别在于&#160HTML 编号,而 HTML 名称

基本上所有这些都是 HTML 实体。您可以通过以下链接了解和了解它们。

    Link 1 Link 2

【讨论】:

【参考方案3】:

  是经典的空格,当你按下空格键时你会得到一个空格,由他的 HTML 实体等价物表示。

  代表non-breaking space,常用于防止多个空格被浏览器折叠在一起:

"    " => " "(只折叠成一个空格)

"    " => “    ”(未折叠)

如果您正在解析一个同时包含经典空格和不间断空格的字符串,则可以安全地将一个替换为另一个。

【讨论】:

【参考方案4】:

Java 8 以上应该可以工作:

string.replace("\\h", " "); 要么 string.replaceAll("\\h", " ");

其中 \h 是如here 所述的水平空白字符

【讨论】:

这是错误的。正确的方法是 string.replaceAll("\\h",""); 按照阿卜杜勒的建议修改!取决于您要达到的目标【参考方案5】:

完成其他答案...

除了不换行和多个空格的折叠之外,HTML渲染实际上不会完全一样,即使大多数答案都是相反的,这通常是正确的。

举个例子:

<span>&#32;test</span> <br/>
<span>&#160;test</span>

第一个span 不会在字符串的开头包含空格,而第二个span 会。这肯定是崩溃行为的一部分:https://en.wikipedia.org/wiki/Non-breaking_space。

所以在这种情况下,如果您需要第一个空格,那么区别很重要。

【讨论】:

以上是关于和之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

UNION和UNION ALL两者之间在性能上的区别

socket,tcp,http三者之间的区别和原理

rsync和cp之间的区别

@Autowired、@Resource和@Qualifier之间的区别

List和List之间有啥区别

Http、Https、TCP、UDP之间的区别和联系(非原创)