2012-08-16 28 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