Quiero obtener algo de texto de una página de PHP en una aplicación de Android. Siempre y cuando los caracteres sean ASCII (hasta 128) no hay problema, pero cuando quiero mostrar caracteres especiales como 'Ţ', 'Â' (el llamado Suplemento Latin-1 y/o Latin Extended-A, véalo en Unicode Chart) Obtengo símbolos extraños en mi aplicación de Android ().Caracteres especiales entre la aplicación de Android y el script PHP
El problema es que mi aplicación Android no puede manejar caracteres de Latin-1 Supplement (que PHP puede) pero caracteres del Latin Extended-A charset (que PHP no puede). No sé qué juego de caracteres común para ambos idiomas usar porque el que Java puede leer PHP no es, y viceversa.
función Mi Java que obtiene el contenido de la página PHP es la siguiente:
public static String GetData() {
byte[] Bresult = null;
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.mypage.com/script.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("var", "val"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){
Bresult = EntityUtils.toByteArray(response.getEntity());
Result = new String(Bresult, "UTF-8");
}
} catch (UnsupportedEncodingException e) {
Log.w("MYAPP", "Unsupported Encoding Exception (" + e.getMessage() + ")");
} catch (Exception e) {
Log.w("MYAPP", "Exception (" + e.getMessage() + ") ocurred");
}
return Result;
}
Por lo tanto, este código me da el contenido de la página script.php . Si los caracteres del texto recibido son de 0 a 128, no hay problema. En otros lugares, obtengo personajes extraños.
Ahora bien, esta es mi código PHP:
<?php
header("Content-Type: text/plain;charset=utf-8");
echo "ÂŞÂĂĒ";
?>
También tengo una aplicación C++ y lo hace leer el texto correctamente. He estado probando muchos métodos todo el día y simplemente no lo entiendo. Quién, dónde, por qué? Gracias.
Tal vez mira esto http://stackoverflow.com/questions/4917860/android-character- encoding-raw-resource-files y este http://stackoverflow.com/questions/3098207/how-to-set-string-character-encoding-in-android - ¿Alguna ayuda allí? – Aerik
Gracias Aerik. Ahora puedo enviarlos correctamente de PHP a Android, pero no de Android a PHP. Manteniendo el intento ... – ali