Tengo una aplicación de Android que te permite publicar tu nombre en un sitio web a pesar de que formulo una solicitud HTTP POST al sitio web. El problema es que el 90% de mis clientes son suecos y la solicitud POST parece cortar todo después de un carácter especial en una cadena, incluido el carácter especial en sí.Los caracteres especiales desaparecen en la solicitud POST desde un teléfono Android
Así que el apellido sueco "Börjesson", se convierte en "B".
mi post código de solicitud:
public static String execRequest(String url, Map<String, String> params)
{
try {
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpPost httpPost = null;
HttpGet httpGet = null;
if(params == null || params.size() == 0) {
httpGet = new HttpGet(url);
httpGet.setHeader("Accept-Encoding", "UTF-8");
}
else {
httpPost = new HttpPost(url);
httpPost.setHeader("Accept-Encoding", "UTF-8");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
for(String key: params.keySet()) {
nameValuePairs.add(new BasicNameValuePair(key, params.get(key)));
}
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
}
HttpResponse httpResponse = (HttpResponse)defaultHttpClient.execute(httpPost == null ? httpGet : httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
if(null != httpEntity) {
InputStream inputStream = httpEntity.getContent();
Header contentEncoding = httpResponse.getFirstHeader("Content-Encoding");
if(contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("UTF-8")) {
inputStream = new GZIPInputStream(inputStream);
}
String responseString = convertStreamToString(inputStream);
inputStream.close();
return responseString;
}
}
catch(Throwable t) {
t.printStackTrace();
}
return null;
}
Por lo tanto, algunos consejos de lo que estoy haciendo mal?
¡Gracias de antemano!
hicieron que trató 'httpPost.setEntity (nueva UrlEncodedFormEntity (nameValuePairs), "UTF-8");' – Selvin
No puedo encontrar ninguna función que tiene ese parámetro ... – Mockarutan
maldiga mi mala no setEntity bat UrlEncodedXXX constructor 'httpPost.setEntity (new UrlEncodedFormEntity (nameValuePairs," utf-8 "));' – Selvin