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...
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;
}
ho quindi fatto il metodo soprastante per sostituirli con le classiche virgolette e apici.
facendo varie prove però con questa pagina:
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>
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 ?)...
qualcuno mi sa dire il motivo?
Grazie per l'attenzione