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

    Caratteri speciali che passione

    Sicuramente questo problema è già uscito fuori, ma nonostante abbia cercato non sono riuscito a risolvere.
    In realtà non so neanche se ho scritto nella sezione giusta. Ora vi spiego...

    Ho una applicazione Android che interroga il db tramite script php.
    Il problema è che quando faccio una insert e inserisco caratteri accentanti, al momento della scrittura mi taglia la stringa dal carattere accentato in poi.

    Ho provato a settare a UTF-8 tutto: il mio db, lo script php con un editore di testo, il codice Java di android, penso tutto!

    Il db è settato a utf8_unicode_ci

    Questo il mio codice PHP:
    codice:
    <?php
    header('Content-type: text/html;charset=utf-8');
    
    mysql_connect(--);
    mysql_select_db(--);
    
    mysql_query("SET CHARACTER SET utf8");
    
    //Inserimento 
    mysql_query("INSERT INTO testo(utente, descrizione) VALUES ('".$_REQUEST['utente']."', '".$_REQUEST['descrizione']."');
    
    ?>
    Questo il mio codice Java:
    codice:
    private class InviaTask extends AsyncTask<Void,String,String>  {
            protected String doInBackground(Void... params) {		
    		    ArrayList<NameValuePair> dati = new ArrayList<NameValuePair>();
    		    dati.add(new BasicNameValuePair("utente",utente));
    		    dati.add(new BasicNameValuePair("descrizione",desc));
    	    	
    		    try{
    		    	HttpClient httpclient = new DefaultHttpClient();
    		    	HttpPost httppost = new HttpPost("http://www.miosito.it/invia.php");
    		        httppost.setEntity(new UrlEncodedFormEntity(dati));
    		        HttpResponse response = httpclient.execute(httppost);
    		        HttpEntity entity = response.getEntity();
    		        is = entity.getContent();
    		        
    		        }catch(Exception e){
    		            Log.e("log_REMOTO", "Errore nella connessione HTTP: "+e.toString());
    		       }
    		         
    		    try{ 
    		    	BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"),8);
    		        StringBuilder sb = new StringBuilder();
    		        String line = null;
    		        while ((line = reader.readLine()) != null) {
    		        	sb.append(line + "\n");        
    		        }
    		        is.close();
    		        result = "OK";
    		        }catch(Exception e){
    		                  Log.e("log_REMOTO", "Errore nella conversione del risultato: "+e.toString());
    		       }
    			return result;
            }
        }
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  2. #2
    La butto lì: non puoi fare una conversione della lettera accentata?
    &agrave; => à
    &egrave; => è
    &eacute; => é
    &igrave; => ì
    &ograve; => ò
    &ugrave; => ù

  3. #3
    ho risolto sostituendo utf8 con iso
    perchè utf8 non contiene i caratteri accentati nel set
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

  4. #4
    UTF8 contiene tutti i caratteri possibili, ma se hai risolto bene
    STK/Unit: Unit Test framework per MariaDB
    http://stk.wikidot.com/stk-unit

  5. #5
    ciao, è quello che pensavo anche io.
    Infatti pensavo di andare sul tranquillo con UTF8, ma poi ho fatto una ulteriore ricerca e ho visto che non contiene le parole accentate:
    http://www.cognitionis.com/img/ascii-chart.gif

    mentre ISO 8859-1 si:
    http://www.htmlhelp.com/reference/charset/latin1.gif
    Giudica i tuoi successi dagli sforzi che hai dovuto compiere per superarli

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.