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

    Caratteri speciale in XML...

    Vi pongo una domana che ai più potrà sembrare stupida...
    Se io ho il seguente pezzo di codice di una servlet:
    codice:
    response.setContentType("text/xml;charset=ISO-8859-1");
    PrintWriter out = response.getWriter();         
    try {
          out.println("<html>");
          out.println("<head>");
          out.println("<title>Servlet Prova</title>");
          out.println("</head>");
          out.println("<body>");
          out.println("<h1>Servlet Prova at & </h1>");
          out.println("</body>");
          out.println("</html>");
    } 
    finally {
          out.close();
    }
    Per quale motivo, con il contentType settato così, il carattere "&" mi manda in errore il browser impedendomi di vedere l'xml? Ciò avviene anche se il charset è UTF8...
    Ovviamente ciò non avviene se è text/html.
    Ma con l'xml come posso fare di modo che vengano visualizzati anche i caratteri speciali tipo l'&?

    Grazie e ciao.

  2. #2
    ciao,
    ti va in errore perchè è un carattere speciale .
    Qualsiasi carattere ASCII (in particolare il set ISO-8859-1) può essere espresso in XML (e, di conseguenza, in HTML) tramite un'entity del tipo &#n; dove n corrisponde al valore ASCII a 7 bit del carattere che intendiamo visualizzare. Sotto un piccolo elenco-esempio.
    codice:
    ASCII  Carattere  XML entity
    32                &amp;#32;
    33     !          &amp;#33;
    34     "          &amp;#34;
    35     #          &amp;#35;
    36     $          &amp;#36;
    37     %          &amp;#37;
    38     &          &amp;#38;
    etc. etc.
    in pratica dovresti effettuare l'escape di quello che passi in rendering al client, o con dei metodi di package utilizzatissimi tipo StringEscapeUtils.escapeXml dei packages commos di apache, oppure te ne fai uno fatto in casa :-P

    hi
    SCJP 96%

    Sono io signore che non ti perdono,io non merito punizioni, io sono potentissimo e ora che ho visto il tuo volto merito di stare in un cielo alto più alto del tuo perché non capendo chi è l’uomo hai dimostrato di essermi inferiore,tu servirai me. Da oggi mi chiamerò Satan che significa l’Avversario.

  3. #3
    con una dimostrazione pratica.
    inserisci in questo forum & # 59 ; tutto attaccato e vedi cosa ti esce
    SCJP 96%

    Sono io signore che non ti perdono,io non merito punizioni, io sono potentissimo e ora che ho visto il tuo volto merito di stare in un cielo alto più alto del tuo perché non capendo chi è l’uomo hai dimostrato di essermi inferiore,tu servirai me. Da oggi mi chiamerò Satan che significa l’Avversario.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.