Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [JSP] Leggere e scrivere caratteri accentati

    Salve, ho inserito nella pagine vari form di inserimento testo che poi finiscono nel db. Quando una pagina jsp prende quel testo i caratteri accentati non vengono letti bene, come si può risolvere il problema? Cercando su google dice di usare il charser utf8 e di impostare anche le tabelle in quel formato, ma non riesco a risolvere il problema

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    96
    Oltre all'encoding della pagina, devi vedere qual è l'encoding del DB (ricorda che per java le stringhe sono UTF16 )

  3. #3
    Ho impostato su tutte le tabelle che uso nel db mysql la codifica utf8, poichè 16 non esiste. Cmq ho notato che se inserisco direttamente a mano nel db sulla pagine me le mostra accentate, mentre quando inserisco da form i caratteri si perdono. Cosa devo fare x far si che i caratteri accentati che scrivo nelle form rimangano tale e quali nel db?

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    starete mica facendo la stessa cosa?
    http://forum.html.it/forum/showthrea...readid=1249436

    prova a postare un po' di codice della pagina con il form e di quella che parsa i dati per l'inserimento a database...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Allora.... questa è la servlet:

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
    {
    try
    {
    HttpSession sessione = request.getSession(true);
    String titolo=(String)request.getParameter("titolo");
    String titoloOriginale=(String)request.getParameter("tito loOriginale");
    String autoreNome=(String)request.getParameter("autoreNom e");
    String autoreCognome=(String)request.getParameter("autore Cognome");
    String casaProduttrice=(String)request.getParameter("casa Produttrice");
    String annoUscitaS=(String)request.getParameter("annoUsci ta");
    String puntateS=(String)request.getParameter("puntate");
    String trama=(String)request.getParameter("trama");
    UtenteRegistrato utenteAutore=(UtenteRegistrato)sessione.getAttribu te("UtenteRegistrato");

    boolean mancante=false;

    if(titolo == null || titolo.equals(""))
    {
    sessione.setAttribute("titoloMancante", "<-- Inserire il titolo");
    sessione.setAttribute("titoloInserito", null);
    mancante=true;
    }else
    {
    sessione.setAttribute("titoloMancante", null);
    sessione.setAttribute("titoloInserito", titolo);
    }

    if(autoreNome == null || autoreCognome == null || autoreNome.equals("Nome") || autoreCognome.equals("Cognome") || autoreNome.equals("") || autoreCognome.equals(""))
    {
    sessione.setAttribute("autoreMancante", "<-- Inserire l'autore");
    sessione.setAttribute("autoreNInserito", null);
    sessione.setAttribute("autoreCInserito", null);
    mancante=true;
    }else
    {
    sessione.setAttribute("autoreMancante", null);
    sessione.setAttribute("autoreNInserito", autoreNome);
    sessione.setAttribute("autoreCInserito", autoreCognome);
    }

    if(casaProduttrice == null || casaProduttrice.equals(""))
    {
    sessione.setAttribute("casaProduttriceMancante", "<-- Inserire casa produttrice");
    sessione.setAttribute("casaProduttriceInserito", null);
    mancante=true;
    }else
    {
    sessione.setAttribute("casaProduttriceMancante", null);
    sessione.setAttribute("casaProduttriceInserito", casaProduttrice);
    }

    if(trama == null || trama.equals(""))
    {
    sessione.setAttribute("tramaMancante", "<-- Inserire la trama");
    sessione.setAttribute("tramaInserita", null);
    mancante=true;
    }else
    {
    sessione.setAttribute("tramaMancante", null);
    sessione.setAttribute("tramaInserita", trama);
    }

    int annoUscita=0, puntate=0;

    if(annoUscitaS != null && !annoUscitaS.equals(""))
    try
    {
    annoUscita=Integer.parseInt(annoUscitaS);
    sessione.setAttribute("annoUscitaNonCorretta", null);
    sessione.setAttribute("annoUscitaInserito", annoUscita);
    }catch(NumberFormatException nf){
    sessione.setAttribute("annoUscitaInserito", null);
    sessione.setAttribute("annoUscitaNonCorretta", "<-- Inserire l'anno di uscita in modo corretto (solo numeri)");
    mancante=true;
    }


    if(puntateS != null && !puntateS.equals(""))
    try
    {
    puntate=Integer.parseInt(puntateS);
    sessione.setAttribute("puntateNonCorrette", null);
    sessione.setAttribute("puntateInserite", puntate);
    }catch(NumberFormatException nf){
    sessione.setAttribute("puntateInserite", null);
    sessione.setAttribute("puntateNonCorrette", "<-- Inserire il numero delle puntate in modo corretto (solo numeri)");
    mancante=true;
    }


    if(titoloOriginale != null)
    sessione.setAttribute("titoloOriginaleInserito", titoloOriginale);
    else
    sessione.setAttribute("titoloOriginaleInserito", null);

    if(mancante)
    response.sendRedirect("utente/creaScheda.jsp");
    else
    {
    if(titoloOriginale == null)
    titoloOriginale="";

    Autore autoreA=new Autore(autoreNome, autoreCognome);
    CasaProduttrice cp=new CasaProduttrice(casaProduttrice);
    SchedaAnime scAn=new SchedaAnime(titolo);
    scAn.setAutore(autoreA);
    scAn.setCasaProduttrice(cp);
    scAn.setAnnoUscita(annoUscita);
    scAn.setDataInserimento(getData());
    scAn.setPuntate(puntate);
    scAn.setTitoloOriginale(titoloOriginale);
    scAn.setStatus(false);
    scAn.setTrama(trama);
    scAn.setUtenteAutore(utenteAutore);


    boolean ris=gsal.creaScheda(scAn);
    if(ris)
    response.sendRedirect("utente/creaSchedaOK.jsp");
    else{
    sessione.setAttribute("titoloInserito", null);
    sessione.setAttribute("autoreNInserito", "Nome");
    sessione.setAttribute("autoreCInserito", "Cognome");
    sessione.setAttribute("casaProduttriceInserito", null);
    sessione.setAttribute("tramaInserita", null);
    sessione.setAttribute("titoloOriginaleInserito", null);
    sessione.setAttribute("puntateInserite", null);
    response.sendRedirect("utente/creaSchedaKO.jsp");
    }
    }
    }catch(Exception e)
    {
    e.printStackTrace();
    response.sendRedirect("errore.html");
    }
    }

    mentre questa la jsp che contiene la form

    <%@ page import="animelist.ejb.*"%>
    <%@ page import="java.util.*"%>
    <%
    UtenteRegistrato utenteAutore=(UtenteRegistrato)session.getAttribut e("UtenteRegistrato");
    if(!utenteAutore.getStatus())
    { %>
    <jsp:forward page="../comune/erroreNonAbilitato.jsp"/>
    <% }
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Crea scheda anime</title>
    </head>
    <body>
    <H1 align="center">Crea scheda</H1>
    <table align="center">
    <form action="../CreaSchedaServlet" method="post">
    <tr>
    <td align="right">Titolo:</td>
    <td>
    <input name="titolo" type="text" size="50" value="<% if(session.getAttribute("titoloInserito") != null)
    out.println(session.getAttribute("titoloInserito") );
    %>" />

    <%
    if(session.getAttribute("titoloMancante") != null)
    out.println(session.getAttribute("titoloMancante") );
    %>
    </td>
    </tr>
    <tr>
    <td align="right">Titolo originale:</td>
    <td>
    <input name="titoloOriginale" type="text" size="50" value="<% if(session.getAttribute("titoloOriginaleInserito") != null)
    out.println(session.getAttribute("titoloOriginaleI nserito"));
    %>" />

    </td>
    </tr>
    <tr>
    <td align="right">Autore:</td>
    <td>
    <input name="autoreNome" type="text" size="20" value="<% if(session.getAttribute("autoreNInserito") != null)
    out.println(session.getAttribute("autoreNInserito" ));
    else
    out.println("Nome");
    %>" />

    <input name="autoreCognome" type="text" size="20" value="<% if(session.getAttribute("autoreCInserito") != null)
    out.println(session.getAttribute("autoreCInserito" ));
    else
    out.println("Cognome");
    %>" />

    <%
    if(session.getAttribute("autoreMancante") != null)
    out.println(session.getAttribute("autoreMancante") );
    %>
    </td>
    </tr>
    <tr>
    <td align="right">Casa produttrice:</td>
    <td>
    <input name="casaProduttrice" type="text" size="50" value="<% if(session.getAttribute("casaProduttriceInserito") != null)
    out.println(session.getAttribute("casaProduttriceI nserito"));
    %>" />

    <%
    if(session.getAttribute("casaProduttriceMancante") != null)
    out.println(session.getAttribute("casaProduttriceM ancante"));
    %>
    </td>
    </tr>
    <tr>
    <td align="right">Anno uscita:</td>
    <td>
    <input name="annoUscita" type="text" size="8" maxlength="4" value="<% if(session.getAttribute("annoUscitaInserito") != null)
    out.println(session.getAttribute("annoUscitaInseri to"));
    %>" />

    <%
    if(session.getAttribute("annoUscitaNonCorretta") != null)
    out.println(session.getAttribute("annoUscitaNonCor retta"));
    %>
    </td>
    </tr>
    <tr>
    <td align="right">Puntate:</td>
    <td>
    <input name="puntate" type="text" size="8" maxlength="4" value="<% if(session.getAttribute("puntateInserite") != null)
    out.println(session.getAttribute("puntateInserite" ));
    %>" />


    <%
    if(session.getAttribute("puntateNonCorrette") != null)
    out.println(session.getAttribute("puntateNonCorret te"));
    %>
    </td>
    </tr>
    <tr>
    <td colspan="2" align="left">Trama:</td>
    </tr>
    <tr>
    <td align="center" colspan="2">
    <textarea name="trama" cols="70" rows="15"><% if(session.getAttribute("tramaMancante") != null)
    out.println(session.getAttribute("tramaMancante")) ;
    else
    if(session.getAttribute("tramaInserita") != null)
    out.println(session.getAttribute("tramaInserita")) ;
    %></textarea>
    </td>
    </tr>


    <tr>
    <td colspan="2"></td>
    </tr>
    <tr>
    <td colspan="2" align="center">
    <input value="Annulla" type="reset"/><input value="Ok" type="submit"/>
    </td>
    </tr>
    </form>
    </table>

    </body>
    </html>

    forse è poco chiaro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Migliora qualcosa così?
    codice:
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException 
        {
        //aggiunta
        response.setContentType("text/html;charset=UTF-8");
        //fine aggiunta.
            try
            {
                HttpSession sessione = request.getSession(true);
                String titolo=(String)request.getParameter("titolo");
                String titoloOriginale=(String)request.getParameter("titolo
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Non funziona... non ho capito perchè a response si setta contentType quando io devo ricevere da request con un dato contentType. Se vedi il programma ciò che prendo dai parametri finisce tutto nel db e non spedisce nulla nella nuova pagina. Ho notato che da request c'è il metodo getContetType, ammettendo che ottengo il tipo di contentType, esiste qualche metodo che la applica alle stringhe?

  8. #8
    Nessuno sa niente?

  9. #9
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    risolto? io ho lo stesso problema praticamente

  10. #10
    idem stesso problema: la mia pagina jsp scrive correttamente i dati(anche i caratteri accentati) presi da un form con metodo post in un DB SQLITE ma quando li vado a estrarre(SELECT e li prendo con ResultSet getString ect ect) al posto degli accenti compaiono dei simboli strani.come posso risolvere? non riesco davvero a venirne a capo...
    inutile dire che SQLITE è gia impostato con codifica utf-8 e le mie pagine specificano la codifica sia con i meta sia con le direttive <% page language page-encoding.... %>

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.