2015-05-07 15 views
9

Sto provando a convertire una stringa HTML in una dom per apportare alcune modifiche a livello di dominio e convertirla in una stringa. L'HTML è in francese e caratteri come é sono mostrati come &ampeacute; è la stringa convertita dopo la trasformazione.é mostrato come & eacute; dopo la conversione dom in java

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 

String modifiedContent = ""; 
StringWriter writer = new StringWriter(); 
StreamResult result = new StreamResult(writer); 
transformer.transform(source, result); 
modifiedContent = writer.toString(); 

"Résultats de recherche" è una stringa, dopo dom viene convertito in stringa, "Résultats de recherche" è il risultato.

Lo sto inserendo in un processore FOP per convertirlo in un pdf, quindi ho bisogno dei caratteri nella sua forma originale.

+0

Provate a convertire é a \ u00E9 (presentazione Unicode) date un'occhiata a questo link potrebbe aiutarvi http://tutorials.jenkov.com/java-internationalization/unicode.html – esprittn

+0

'writer.toString()' stampa 'R & Atilde; © sultats'? – sp00m

+0

@ sp00m, si, esattamente – stackMan10

risposta

1

Mi sembra normale che DOMSource mantenga i caratteri in formato html.

È possibile utilizzare lo Jakarta library unescape html method per riconvertire i caratteri html in stringhe regolari. Nel tuo caso, si dovrebbe aggiungere questa riga:

String unescapedHtml = StringEscapeUtils.unescapeHtml4(modifiedContent); 

Assicurati di aggiungere la giusta maven dependency al progetto.

P.S. Sembra che ci sia una versione più recente della libreria su Maven Central, ma non sono riuscito a trovare il javadoc associato.

Problemi correlati