2013-11-15 2 views
0

У меня проблема с моим приложением, когда я пытаюсь отправить текст на мой сервер Apache, который содержит символы, такие как má mé mí mó mú, который отправил символ как m ?. Как я могу это решить?Android Как отправить текст с акцентами на PHP

Это мой код:

public boolean loginstatus(String reporte, String user) { 
      File file = new File(fileUri.getPath()); 
      try { 
        MultipartEntityBuilder entity = MultipartEntityBuilder.create(); 
        Log.e("enviando", "archivo "+fileUri.getPath()); 
        Log.e("enviando", "reporte "+reporte); 
        Log.e("enviando", "usuario "+user); 
        entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
        entity.addTextBody("reporte", reporte); 
        entity.addTextBody("usuarioID",user); 
        if (file.length() <= 0){ 
        }else{ 
        entity.addPart("archivo", new FileBody(file)); 
        } 
        final HttpEntity yourEntity = entity.build(); 
        httppost.setEntity(yourEntity); 
        HttpResponse response = httpclient.execute(httppost); 
       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      return true; 

     } 

ответ

1

Прежде всего, проблема здесь кодировка. Либо таблица базы данных не закодирована для использования UTF-8, либо String, которую вы отправляете isnt.

выпуск стол:

вы можете использовать CHARACTER SET utf8 на вашей БД таблицы.

Строка вопрос: Элегантный способ решить использует

StringEntity entity = new StringEntity(Yourtext, "UTF-8");

Другой способ заключается в использовании getBytes("UTF-8") функции вашей строки и использовать DataOutputStream

+0

Спасибо, но где поставить что? Еще раз спасибо. –

+0

Где бы вы ни разместили свои специальные символы. Я предполагаю, что: entity.addTextBody («reporte», reporte); должно быть: entity.addTextBody (URLEncoder.encode («reporte má mé mó mú», «UTF-8»), reporte); Я выяснил, что проще использовать URLEncoder. –