2012-08-16 65 views
9

之间的区别是否可以解释我之间的区别  and   与 

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

另外的问题是,当我使用JSoup lib它正确转换,但这个HTML转换为纯文本,如果我用String.contains(我的字符串)的Java方法。它看起来像是 的HTML数据不同于 。字符串不能在反之亦然。

例子:

HTML1:This is my test string

HTML2:This is my test string

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

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

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

但仍然都串不一样的。为什么这样?

回答

24

 是经典的空间,一个你当你打你的空格键,通过他的HTML实体等同表示。

  表示non-breaking space,经常使用的浏览器,以防止多个空格聚会的崩溃:

"    " => “”(压缩成只有一个空格)

"    " =>“       “(未折叠)

如果您正在解析包含经典和非中断空格的字符串,则可以安全地再次一个由另一个。

3

&#32是空格键的字符。

&#160和& NBSP都是非打破空间的字符。

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

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

+0

有没有办法找到当前文字的编码风格? – Ketan 2012-08-16 09:20:12

3

 ,只是一个空格字符而已。经常出现这个字符会崩溃到一个空格字符在最后。

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

,它们之间的区别就是&#160HTML数 HTML名称

基本上所有这些都是HTML实体。您可以了解并了解他们,看到以下链接。

  1. Link 1
  2. Link 2
1

的Java 8日起以下应该工作:

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

其中\ h是水平空白字符描述here