Ciao a tutti, mi trovo in difficoltà sul passaggio di alcuni caratteri speciali che potrebbero essere passati in vari modi ad alcune della pagine web, in particolare tramite textarea o campi text.
I caratteri sono alcune strane virgolette o apicetti che vengono aggiunti ai testi scritti in word e che poi copia/incollati nei campi in questione danno problemi...
ho quindi fatto il metodo soprastante per sostituirli con le classiche virgolette e apici.codice:public static String replaceDangerousChars(String stringa){ if (stringa == null) return ""; stringa = stringa.replaceAll("…","..."); stringa = stringa.replaceAll("”","\""); stringa = stringa.replaceAll("“","\""); stringa = stringa.replaceAll("’","'"); stringa = stringa.replaceAll("'","''"); stringa = stringa.replaceAll("#"," "); stringa = stringa.replaceAll(" ","\n"); return stringa; }
facendo varie prove però con questa pagina:
ho notato che sia usando il metodo POST che il metodo GET i caratteri della 2,3 e 4 replaceAll vengono passati come carattere 63 (il ?)...codice:<%@ page contentType="text/html;charset=windows-1252"%> <%@page import="utils.Utils"%> <html> <head> </head> <body> <% if (request.getParameter("testo") != null){ String testo = request.getParameter("testo"); out.println("->"+testo+"<- "); for(int i=0;i<testo.length();i++) out.println((int)testo.charAt(i)+" - "); testo = Utils.replaceDangerousChars(testo); out.println(" ->"+testo+"<- "); for(int i=0;i<testo.length();i++) out.println((int)testo.charAt(i)+" - "); testo = testo.replace('’','\''); out.println(" ->"+testo+"<- "); for(int i=0;i<testo.length();i++) out.println((int)testo.charAt(i)+" - "); } %> <div id="test"> <form method="post"> <input type="text" name="testo" id="testo"> <input type="submit" value="x"> </form> </div> </body> </html>
qualcuno mi sa dire il motivo?
Grazie per l'attenzione
![]()


Rispondi quotando