![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
flamant
Bonjour,
J'ai un rapport avec des caractères spéciaux
Quand je génère la chaine (String) jrxml elle comporte des caractères spéciaux et j'ai une erreur à la ligne 2 (voir la suite)
(dans jrxml, j'ai par exemple un static Text "<text><![CDATA[" + field.getFldText() + "]]></text>" avec des caractères spéciaux dans field.getFldText())
ligne 1 - InputStream jrxmlInputStream = new ByteArrayInputStream(jrxml.toString().getBytes());
ligne 2 - JasperDesign jasperDesign = JRXmlLoader.load(jrxmlInputStream);
Donc j'essaye d'échapper les caractères spéciaux (échappement xml) et d'utiliser une classe java dans le jrxml pour de-échapper (de-échappement xml) les chaines de caractères
<import value=\"org.apache.commons.lang.StringEscapeUtils\" /> sous le tag jasperReport
Et pour le static Text
<text><![CDATA[StringEscapeUtils.unescapeXml(").append(StringEscapeUtils.escapeXml(field.getFldText())).append(")]]></text>
Mais il semble que
org.apache.commons.lang.StringEscapeUtils.unescapeXml() n'est pas utilisée comme classe java mais comme une String brute (dans ma String jrxml, je peux voir ci qui suit: <text><![CDATA[StringEscapeUtils.unescapeXml(Do NOT use the following symbols: \ (backward slash), é, Ä, ß, µ (non-English language symbols), °C (superscripts), ¾ (fractions), symbols < and > and quotation marks)]]></text>
J'en conclut que je n'utilise pas de la bonne façon les classes java dans le rapport. Est-ce que vous avez une idée comment faire ?
Merci d'avance pour vos réponses
Partager