Mi aplicación para Android se comunica a través de HTTP Post con un servidor PHP. que se suman a la petición HTTP siguiente parámetro:HTTP Post convierte € a? símbolo
nameValuePairs.add(new BasicNameValuePair("text", message));
mensaje es una cadena y contiene el símbolo €
En el servidor se está ejecutando PHP y recibe la petición. Desafortunadamente el símbolo € se convierte automáticamente a? símbolo. Todos los otros símbolos funcionan como "A, U, $, ß
En Android he puesto ninguna codificación:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://server.com/test.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
En el sitio PHP también tengo nada especificado Aquí el código:.
<?php
mysql_connect("blablaost.com", "blabla", "blabla") or die(mysql_error());
mysql_select_db("asfd") or die(mysql_error());
$mysqldate = gmdate('Y-m-d H:i:s');
$language = (int) $_REQUEST['language'];
mysql_query("blabla ... .$_REQUEST['text']. ")
or die(mysql_error());
mysql_close();
?>
$ _REQUEST [ 'texto'] contiene el € y me da una?
¿Puedes verificar la codificación que envían/esperan los dos lados? –
¿Alguna suerte jugando con urldecode() y rawurldecode() en el lado php? ¿Cómo está controlando el resultado? –
parece que la codificación de salida/entrada del servidor PHP es ISO-8859-1. Lo compruebo escribiéndolo en mySQL DB. ¡Pero esto no es culpa! No estoy seguro de qué hacer con urldecode() .. – tobias