2010-09-03 7 views
0

J'ai une zone de texte html qui est utilisée pour afficher une chaîne à partir d'une base de données. La zone de texte peut être modifiée et toutes les modifications sont enregistrées dans la base de données.Comment arrêter html textarea d'interpréter des entités html dans leurs caractères

Le problème est que lorsqu'il reçoit des entités & reg; dans une chaîne, il les convertit en caractères, et lorsque le texte est sauvegardé, les caractères écrasent les entités. Par exemple: La base de données renvoie la chaîne Microsoft & reg; qui serait affiché comme Microsoft®, puis sauvegardé de cette façon. Existe-t-il un moyen de forcer les zones de texte à ne pas interpréter les entités?

Suivi: ma pensée est maintenant, à l'obtention de la chaîne de la base de données remplacer tous '&' avec '& amp;'. Mais je me demande toujours s'il existe un moyen d'empêcher les textareas de convertir les chaînes qu'ils reçoivent.

+0

savez-vous quel type d'Unicode votre base de données utilise? – Tim

Répondre

6

Vous voulez donc échapper des entités HTML? Vous pouvez utiliser JSTL <c:out> ou fn:escapeXml().

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
... 
<textarea><c:out value="${bean.text}" /></textarea> 

ou

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
... 
<textarea>${fn:escapeXml(bean.text)}</textarea> 

Il en fuite par défaut sous chaque &-&amp; de telle sorte que, par exemple &reg; finit par devenir &amp;reg; et de cette façon, il sera affiché comme &reg;.

+0

Ceci l'a résolu, merci. – Riplikash

+0

De rien. – BalusC

Questions connexes