Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65

    caratteri tastiera android

    Salve ragazzi ,
    ho un problema con una piccola app da me creata , in pratica memorizzo delle stringhe dall'app andorid e le devo visualizzare in una pagina html fin qua tt ok funziona tutto l'unico problema e che quando insersco dall'app lettere accentate tipo è,ò,à ecc. quando le metto a video nalla pagina web mi ritrovo dei quadratini neri e non è,ò,à..
    ho notato pero che se le memorizzo da una form html si vedono bene.

    potete aiutarmi ???
    grazie mille

  2. #2
    ciao!

    dove salvi le stringhe?
    con quale codifica (probabile problema)?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    ciao per salvare faccio una richiesta http ad una pagina php che riceve tramite post la stringa scritta nell'app...
    ho notato pero che il carattere è scritto dalla tastiera del pc nel database e diverso dal carattere è scritto dalla tastiera dell'app android
    Ultima modifica di dannos; 07-01-2016 a 15:21

  4. #4
    penso sia un problema di codifica dei dati che invii dalla app a php.
    se posti il codice che usi in android, magari vediamo se c'è qualcosa che non va!

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    ciao per salvare faccio una richiesta http ad una pagina php che riceve tramite post la stringa scritta nell'app...
    ho notato pero che il carattere è scritto dalla tastiera del pc nel database e diverso dal carattere è scritto dalla tastiera dell'app android
    Le questioni sono diverse:
    - POST con body in che formato? Cioè è come il post di un form (content type application/x-www-form-urlencoded) o è qualcos'altro? Se è qualcos'altro (es. testo puro o XML), come è codificato come charset?
    - Il database che charset usa?
    - La pagina che lato server viene generata con i dati dal database è inviata al client con quale charset?

    Sono tutte questioni delicate che vanno viste e verificate. Anche solo uno sbaglio su questi può portare ai risultati che hai descritto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    codice:
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    
    
    import android.support.v7.app.ActionBarActivity;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.WindowManager;
    import android.webkit.WebView;
    import android.widget.Button;
    import android.widget.EditText;
    import android.view.View.OnKeyListener;
    
    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
              // setto la WebView
              WebView myWebView = (WebView) findViewById(R.id.webChat);
              myWebView.loadUrl("http://192.168.0.105/Chat/killer.php");
              //abilito java script
              myWebView.getSettings().setJavaScriptEnabled(true);
              
              // setto la edit text
              final EditText eText;
              eText = (EditText) findViewById(R.id.Text);
              
              //setto il bottone invia
              Button btnInvia = (Button) findViewById(R.id.invia);
                
              //evento pressione bottone entra
              btnInvia.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        //memorizzare nel database
                          memorizza(eText.getText().toString());
                          //svuotare edit text 
                          eText.setText("");
                    }
              });
              
        }
        
        public void memorizza (final String s){
             /*  eseguo un nuovo Thread per velocizzare la GUI dell'app
              *  la funzione tramite una richiesta http chiama la pagina memo.php 
              *  e tramite il metodo post gli viene passato il messaggio 
              *  tramite in metodo get gli viene passato in nome della stanza
              *  
              *  stanza = 1 -> Museo
              *  stanza = 2 -> Killer
              */
            
            Thread thread = new Thread()
            {
               public void run()
               {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://192.168.0.105/Chat/apiAndroid/memo.php?stanza=2");
                    
              
                        // aggiungo i dati che verrano passiti alla pagina php tramite il post
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                        nameValuePairs.add(new BasicNameValuePair("mexs", s));
                        nameValuePairs.add(new BasicNameValuePair("name", "1"));
                        try {
                            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                        } catch (UnsupportedEncodingException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
    
                        // Eseguo la richiesta HTTP POST
                        try {
                            HttpResponse response = httpclient.execute(httppost);
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                      
    
      
               }
            };
            thread.start();
            thread.interrupt();
               
        
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    ecco il codice

  7. #7
    che encoding ha il database?
    prova a settare lo stesso encoding nella webview.
    quindi, se il db è settato su UTF-8:
    codice:
    WebSettings settings = mWebView.getSettings();
    settings.setDefaultTextEncodingName("utf-8");
    non l'ho testato...

    PS: per le richieste HTTP non usare i thread, ma usa AsyncTask.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    l'encodig del database è questa
    latin1_swedish_ci

    ho notato che nel database il carattere è scritto dalla tastiera del pc viene memorizzato cosi è mentre il carattere è dalla tastiera android e memorizzato cosi è
    Ultima modifica di dannos; 07-01-2016 a 22:39

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    residenza
    napoli
    Messaggi
    65
    ragazzi allora grazie mille per le risposte ho risolto mettendo questo meta tag nella parte html

    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">

    funziona tutto alla perfezione solo con firefox nn funziona questo nn è un problema pero se sapreste dirmi il perchè ve ne sarei davvero grato

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da dannos Visualizza il messaggio
    ho notato che nel database il carattere è scritto dalla tastiera del pc viene memorizzato cosi è
    Quote Originariamente inviata da dannos Visualizza il messaggio
    ho risolto mettendo questo meta tag nella parte html

    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
    Mah .. mi sembra strano che solo il content type a livello HTML risolve, insomma ... dubito. La questione è che se "vedi" da qualche parte è (che sono 2 caratteri) mentre te ne aspetti solo uno, vuol dire che da qualche parte, in qualche step, è avvenuta una (de)codifica sballata tra byte e caratteri.
    Infatti [Ã] e [¨] se visti come singoli byte (in hex) sono C3 A8 e sono proprio la sequenza di 2 byte che in UTF-8 rappresenta il singolo carattere è

    Quindi qualcosa di non buono è successo ...
    Per risolvere bene, dovresti aver chiari tutti i passaggi che avvengono tra caratteri e byte ai vari livelli e verificare quindi che siano corretti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Tag per questa discussione

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.