Diferencia entre & # 32; y & nbsp;

¿Puede alguien explicarme la diferencia entre and   and   ?

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

También es un problema cuando convierto este HTML a texto sin formato usando JSoup lib lo está convirtiendo correctamente, pero si uso el método String.contains (my string) de java. Parece que los datos HTML que tienen   es diferente de lo que está teniendo . La cadena no se encuentra en ambos viceversa.

Ejemplo:

HTML1: This is my test string

HTML2: This is my test string

Si lo convierto en texto sin formato con JSoup. Vuelve

HTML 1: esta es mi cadena de prueba

HTML 2: esta es mi cadena de prueba

Pero aún así, ambas cadenas no son iguales. ¿Por que es esto entonces?

es el espacio clásico, el que obtienes cuando pulsas la barra espaciadora, representada por su equivalente de entidad HTML.

  y   representa el espacio sin interrupciones , a menudo utilizado para evitar el colapso de múltiples espacios de reuniones por parte del navegador:

" " => “” (colapsado en un solo espacio)

"    " => “” (no colapsó)

Si está analizando una cadena que contiene espacios clásicos y sin interrupción, puede reemplazarlos de forma segura por el otro.

& # 32 es el caracter de la tecla espacio.

& # 160 y & nbsp son los dos caracteres para el espacio sin ruptura.

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

En comparación directa, probablemente se mostrarán como diferentes.

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

Donde como   y   ambos representan caracteres espaciales sin interrupción y si ocurren continuamente uno tras otro, se colapsarán o se romperán en un carácter de espacio.

Solo que la diferencia entre ellos es que   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. Enlace 1
  2. Enlace 2

Java 8 en adelante debería funcionar:

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

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