Sicuramente questo problema è già uscito fuori, ma nonostante abbia cercato non sono riuscito a risolvere.
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:
<?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;
}
}