2012-08-16 27 views
9

¿Puede alguien explicarme la diferencia entre   and  ?Diferencia entre y  

Tengo datos html almacenados en la base de datos en forma y espacio binarios en que puede ser   o   o a veces  .

También es cuestión cuando convierto este código HTML a texto sin formato utilizando JSoup lib se está convirtiendo de forma adecuada, pero si uso el método de Java String.contains (mi cadena). Parece que los datos HTML que tienen   son diferentes de los que están teniendo  . La cadena no se encuentra en ambos viceversa.

Ejemplo:

HTML1: This is my test string

HTML2: This is my test string

Si convertirlo en texto plano usando JSoup. Devuelve

HTML 1: Este es mi cadena de prueba

HTML 2: Este es mi cadena de prueba

Pero aún así, tanto la cadena no son los mismos. ¿Por que es esto entonces?

Respuesta

24

  es el espacio clásico, el que se obtiene cuando se golpea la barra espaciadora, representada por su equivalente entidad HTML.

  y   representa la non-breaking space, utiliza a menudo para evitar el colapso de múltiples espacios togethers por el navegador:

"    " => "" (colapsado en sólo un espacio)

"    " => "        "(no colapsó)

Si está analizando una cadena que contiene espacios clásicos y no disruptivos, puede reemplazar con seguridad ce uno por el otro.

3

& # 32 es el caracter de la tecla de espacio.

& # 160 y & nbsp son los dos caracteres para Sin espacio de ruptura.

Si sus datos provienen de diferentes fuentes, es posible que los símbolos espaciales hayan sido codificados de manera diferente.

En comparación directa, es probable que se muestren como diferentes.

+0

¿Hay alguna manera de encontrar el estilo de codificación del texto actual? – Ketan

3

 , es solo un personaje de espacio nada más. La aparición regular de este carácter colapsará a un espacio carácter al final.

Donde &#160 y   representan el carácter de espacio no disruptivo y si se producen continuamente uno tras otro, colapsarán o se romperán en un carácter de espacio. Sólo

, diferencia entre ellos es que &#160 es el número HTML y   es un nombre HTML.

Básicamente todas estas son entidades HTML. Puede aprender y conocer sobre ellos, viendo los siguientes enlaces.

  1. Link 1
  2. Link 2
1

Java 8 en adelante siguiente debe funcionar:

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

donde \ h es un carácter de espacio en blanco horizontal como se describe here