2012-08-16 21 views
9

Qualcuno può spiegarmi la differenza tra   and  ?Differenza tra e  

devo dati HTML memorizzati nel database in forma binaria e nello spazio in che può essere sia di   o   oa volte  .

anche problema è quando converto questo HTML in testo normale utilizzando JSoup lib si sta convertendo in modo corretto, ma se uso String.contains (la mia stringa) il metodo di Java. Sembra che il dato HTML che sta avendo   sia diverso da quello che sta avendo  . La stringa non si trova in nessuno dei due casi.

Esempio:

HTML1: This is my test string

HTML2: This is my test string

Se converto al testo normale utilizzando JSoup. Esso restituisce

HTML 1: Questa è la mia stringa di testo

HTML 2: Questa è la mia stringa di testo

Ma ancora sia stringa non sono gli stessi. Perché è così?

risposta

24

  è lo spazio classico, quello che si ottiene quando si colpisce la barra spaziatrice, rappresentata dalla sua entità HTML equivalente.

  e   rappresenta il non-breaking space, spesso usato per prevenire il collasso di molteplici spazi incontri dal browser:

"    " => "" (compresso in un solo spazio)

"    " => "     

Se si sta analizzando una stringa contenente spazi sia classici che non interrotti, è possibile eseguire il repla in modo sicuro ce uno dall'altro.

3

& # 32 è il carattere per la chiave di spazio.

& # 160 e & nbsp sono entrambi i caratteri per Spazio non interruzione.

Se i dati provengono da fonti diverse, è possibile che i simboli dello spazio siano stati codificati in modo diverso.

Nel confronto diretto è probabile che vengano visualizzati come diversi.

+0

Esiste un modo per trovare lo stile di codifica del testo attuale? – Ketan

3

 , non è altro che un carattere spaziale. L'occorrenza regolare di questo personaggio crolla a uno spazio alla fine.

Dove come &#160 e   entrambi rappresentano carattere di spazio non-breaking e se si verificano continuamente uno dopo l'altro, essi saranno collasso o rompere uno spazio. Solo

, differenza tra loro è che &#160 è il numero HTML e   è un nome HTML.

Fondamentalmente tutte queste sono entità HTML. Puoi imparare e conoscerli, vedendo i seguenti link.

  1. Link 1
  2. Link 2
1

Java 8 in poi seguente dovrebbe funzionare:

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

dove \ h è un carattere di spaziatura orizzontale come descritto here