decodifica HTML html

Sono confuso riguardo al testo html che devo decodificare prima di visualizzarlo all’utente. Lo voglio:

result= Html.fromHtml(temp).toString(); 

dove temp contiene qualcosa come: “B \ u0026 M Collision Repair”. Comunque il risultato contiene esattamente lo stesso di temp dopo l’esecuzione. Cosa mi manca qui?

Alcuni chiarimenti:

  • "B \u0026 M Collision Repair" non è HTML.
  • "B & M Collision Repair" è HTML.

Da Java a HTML

"B \u0026 M Collision Repair" non è HTML. È un letterale stringa Java o come si crea una stringa nel codice Java. I caratteri Unicode vengono memorizzati come caratteri non elaborati decodificati. La notazione \u viene utilizzata solo per sfuggire ai caratteri unicode durante la creazione della stringa, non viene archiviata in questo modo. Nota a margine, poiché questo carattere commerciale è compreso nell’intervallo ISO-8859-1, non è necessario eseguire l’escape in questo modo. "B & M Collision Repair" è la stessa cosa in Java.

La conversione di stringhe Java in HTML è comune e dovrebbe essere eseguita per visualizzare stringhe Java in un browser web. Questo sarebbe chiamato codifica HTML .

Per convertire la stringa Java in HTML, codificando in tal modo i caratteri unicode raw Java in quadro HTML:

 String java = "B \u0026 M Collision Repair"; #=> (String) "B \u0026 M Collision Repair" #=> (String) "B & M Collision Repair" String html = Html.escapeHtml(html); #=> (String) "B & M Collision Repair" #=> (String) "B & M Collision Repair" #or String html = Html.toHtml(html).toString(); #=> (String) "B & M Collision Repair" #=> (String) "B & M Collision Repair" 
  • java.lang.String
  • android.text.Html

HTML a Java

"B & M Collision Repair" è HTML. I caratteri Unicode sono memorizzati come quadro di caratteri codificati. Il &#x; la notazione è usata per sfuggire ai caratteri unicode per la trasmissione su ISO-8859-1. Un browser Web li decodifica per visualizzare i caratteri unicode effettivi.

La conversione di stringhe HTML in Java è meno comune ed è solitamente riservata per “raschiare” o “analizzare” le stringhe Java per la memorizzazione e la visualizzazione in alcuni sistemi che non supportano l’HTML. Questo sarebbe chiamato decodifica HTML .

Per convertire la stringa HTML in Java, decodificando quindi le quadro HTML in caratteri unicode raw Java:

 String html = "B & M Collision Repair"; #=> (String) "B & M Collision Repair" String java = Html.fromHtml(html).toString(); #=> (String) "B \u0026 M Collision Repair" #=> (String) "B & M Collision Repair" 
  • java.lang.String
  • android.text.Html

Anche io ho avuto lo stesso problema. Prova questo,

 Spanned ss=Html.fromHtml(your String); String tempString=ss.toString(); 

Prova questo corso .

 result = URLDecoder.decode(temp,"UTF-8"); 

\ N0006 è Unicode che non viene tradotto. Suggerimento:

 String temp = "B \u0026 M Collision Repair"; String result = Html.fromHtml(temp).toString();