View Full Version : [JAVA] HTML Entities ENCODE!
VegetaSSJ5
10-04-2011, 16:08
Salve!
Ho bisogno di un metodo java che mi faccia l'encoding di tutti i caratteri che non siano lettere o numeri in html entities.
Sto cercando da un po' ma ne ho trovata solo una che però ad esempio non mi converte le accentate in html entities.
Sapete darmi una mano?
Grazie! ;)
banryu79
10-04-2011, 16:34
Salve!
Ho bisogno di un metodo java che mi faccia l'encoding di tutti i caratteri che non siano lettere o numeri in html entities.
Sto cercando da un po' ma ne ho trovata solo una che però ad esempio non mi converte le accentate in html entities.
Sapete darmi una mano?
Grazie! ;)
Hia già per caso tentato con la classe StringEscapeUtils di Apache Common Lang? Se no, prova con quella.
VegetaSSJ5
11-04-2011, 16:29
Hia già per caso tentato con la classe StringEscapeUtils di Apache Common Lang? Se no, prova con quella.
So che ci sono librerie esterne che fanno questo lavoro, come quella che hai citato. Ma non vorrei ricorrere ad una libreria esterna per una sola funzione che mi serve...
banryu79
11-04-2011, 16:39
So che ci sono librerie esterne che fanno questo lavoro, come quella che hai citato. Ma non vorrei ricorrere ad una libreria esterna per una sola funzione che mi serve...
Capisco, ma in questo caso devi scriverti/procurarti un metodo/classe/libreria che lo faccia... quindi torniamo punto e accapo.
In ogni caso, a questa pagina (http://www.w3schools.com/tags/ref_entities.asp) trovi un riferimento circa le Html Entities...
Di primo acchitto direi che servirebbe una lista di mappe, una per ogni charset che si vuol supportare, dove la chiave è un simbolo dell'alfabeto di quel charset, e il valore è la Html Entity corrispondente (nella sua forma mnemonica "&..." piuttosto che in quella numerica "&#...").
Non so se è conveniente fare tutto sto lavoro "a mano", quando esiste la "pappa pronta". Usare librerie serve apposta per non reinventare la ruota, e concentrare sforzi e tempo su quello che è il nostro vero obiettivo.
Se poi il tuo è implementare questa conversione, allora buon lavoro.
VegetaSSJ5
13-04-2011, 16:21
Ho optato per l'utilizzo della libreria Apache Commons Lang! ;)
Ora però ho un problema...
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 6 in the generated java file
Only a type can be imported. org.apache.commons.lang.StringEscapeUtils resolves to a package
An error occurred at line: 43 in the jsp file: /editor.jsp
StringEscapeUtils cannot be resolved
40: sNome = oDocRs.getString("nome");
41: sDescrizione = oDocRs.getString("descrizione");
42: sTipo = oDocRs.getString("tipo");
43: sContenuto = StringEscapeUtils.unescapeHtml(oDocRs.getString("contenuto"));
44: sDataCreazione = oDocRs.getString("create_date");
45: sDataModifica = oDocRs.getString("modified_date");
46: }
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Ovviamente è presente la direttiva
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
e ho importato il jar nella folder Libraries del progetto in NetBeans...
Come mai fa così?
banryu79
13-04-2011, 16:30
Come mai fa così?
Boh :sofico:
Non so praticamente niente circa le tecnologie orientate allo sviluppo per il web, quindi io non ti so aiutare, in questo caso...
banryu79
14-04-2011, 12:31
Edit: prova importanto tutte le classi del package "org.apache.commons.lang", così
<%@ page import="org.apache.commons.lang.*" %>
e controlla anche che il jar e le info ad esso relative siano presenti nelle cartelle previste (WEB-INF o META-INF, non saprei, non conoscendo JSP).
VegetaSSJ5
14-04-2011, 13:42
aggiornamento: ora funziona. non so perchè, forse è bastato un clean & build o un riavvio dell'ambiente di sviluppo... cmq va bè tutto è bene quello che finisce bene! :)
banryu79
15-04-2011, 13:05
aggiornamento: ora funziona. non so perchè, forse è bastato un clean & build o un riavvio dell'ambiente di sviluppo... cmq va bè tutto è bene quello che finisce bene! :)
Ciao, visto che usi NetBeans, oggi sono per caso incappato in questo plugin e mi è venuto in mente il tuo thread, te lo segnalo:
http://plugins.netbeans.org/plugin/26551/html-entities-sonderzeichen
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.