Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con passaggio di parametri

    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

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  2. #2
    Aggiungo che dopo aver cambiato il charset a ISO-8859-1 il carattere viene interpretato come il 146 (il dittongo ae maiuscolo)
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    Io un uppettino lo faccio...non si sa mai...

    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova con i charset prima di prelevare la stringa
    request.setCharacterEncoding(...)

  5. #5
    Grazie del suggerimento, appena torno a casa provo e ti faccio sapere
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.