2010-02-22 13 views
2

J'ai un petit problème: j'écris au contenu de réponse du dossier et le renvoie au client comme réponse d'ajax.
Mais il se produit substitution html: de > à > etc ...
Que dois-je faire pour faire cette substitution?Le contenu de réponse de Java renvoie au lieu de < or > < >

res.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 
res.setHeader("Pragma", "public"); 
res.setContentType("text/html"); 

TIA

mise à jour

// import com.ibm.useful.http.PostData; 
     PostData pd = new PostData(req); 
     final FileData data; 

    try { 
     data = pd.getFileData("sqlFile"); 

    ByteArrayOutputStream buf = new ByteArrayOutputStream(); 
    for (byte b : data.getByteData()) { 
     buf.write(b); 
    } 
    res.getWriter().print(buf.toString()); 
} 

i regardé buf.toString() par débogueur. c'est bon là-bas. la substitution va plus loin. mais où ...

+0

Où est le code que vous utilisez pour écrire le contenu du fichier dans la réponse? –

+0

Comment écrivez-vous la réponse? Pouvez-vous fournir un exemple de code? –

Répondre

2

Les caractères spéciaux HTML ont été échappés dans HTML entities. Si vous êtes sûr que cela s'est produit juste après l'avoir écrit dans la réponse et juste avant que les données de réponse arrivent au client, il y a probablement un filtre dans la chaîne qui a échappé aux entités HTML pour une raison quelconque. Vérifiez les filtres déclarés au web.xml et réglez le url-pattern si nécessaire.

0

Cela se produit généralement lorsque les caractères html (

<,>, "

entre autres) sont en cours se sont échappés. Essayez la mise en fuite à false ou similaire. Impossible de trouver la documentation de l'API pour "com.ibm.useful.http.PostData"

+0

Et c'est arrivé pour votre démarque aussi :-) –

0

Essayez d'utiliser l'extrait ci-dessous:

res.setContentType("text/html; charset=UTF-8"); 

Veuillez vous assurer que votre base de données est également configurée en encodage UTF-8, si vous en utilisez une. Si cela ne résout pas, veuillez lire ceci article.

+0

Ce problème n'a rien mais aussi vraiment rien à voir avec l'encodage de caractères. – BalusC

+0

a essuyé. ça n'a pas marché pour moi. –

+0

Voir aussi l'article que j'ai ajouté dans la réponse. –