和之间的区别

时间:2012-08-16 09:13:56

标签: java html string jsp ascii

任何人都可以解释  and  之间的差异吗?

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

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

示例:

HTML1:This is my test string

HTML2:This is my test string

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

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

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

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

4 个答案:

答案 0 :(得分:30)

 是经典空间,是您点击空格键时获得的空间,由他的HTML实体等效表示。

  代表non-breaking space,通常用于防止浏览器崩溃多个空间转移:

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

"    " => “”(没有崩溃)

如果要分析包含经典和非破坏空格的字符串,则可以安全地将其替换为另一个。

答案 1 :(得分:3)

&#32是空格键的字符。

&#160和& nbsp都是非破坏空间的字符。

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

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

答案 2 :(得分:3)

 ,仅仅是一个空间角色。此角色的定期出现将在最后折叠为 一个空格 字符。

&#160 都代表不间断的空格字符,如果它们一个接一个地连续出现,它们将会崩溃或中断为一个空格字符。

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

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

  1. Link 1
  2. Link 2

答案 3 :(得分:1)

Java 8以后应该可以工作:

string.replace("\\h", " ");

其中\ h是here

所描述的水平空白字符