Android Java UTF-8 JSON - PullRequest
       1

Android Java UTF-8 JSON

4 голосов
/ 16 марта 2011

Одна часть моего приложения выполняет запрос (через php) к базе данных mysql. Я использую в базе данных UTF-8, потому что у меня есть буквы типа é à ê, которые должны появиться. Я прочитал эту проблему, потому что она казалась почти такой же.

Проблема HttpClient в Android Java UTF-8

Однако, когда я реализую код, он заменяет каждое возвращаемое значение на é как ноль.

Это мой код

HttpParams params = new BasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(params, "UTF-8");
        params.setBooleanParameter("http.protocol.expect-continue", false);
        HttpClient httpclient = new DefaultHttpClient(params);

             HttpPost httppost = new HttpPost("http://www.example.com/example.php");
             httppost.setEntity(new UrlEncodedFormEntity(query));
             HttpResponse response = httpclient.execute(httppost);


             HttpEntity entity = response.getEntity();
             String jsonText = EntityUtils.toString(entity, HTTP.UTF_8);
             Toast.makeText(StoresInfo.this, jsonText, Toast.LENGTH_LONG).show();
             is = entity.getContent();

Таким образом, в строке jsonText он заменяет возвращаемые значения символом «è» на ноль.

Последняя строка = entity.getConent (); Я добавил это, потому что я обычно использую входной поток для его чтения, но это также не работает.

У кого-нибудь есть идея?

Это мой php код

<?php
     mysql_select_db("database");

        $q=mysql_query($_REQUEST['query']);

          while($e=mysql_fetch_assoc($q))

                $output[]=$e;
          print(json_encode($output));
    mysql_close();


    ?>

1 Ответ

5 голосов
/ 16 марта 2011

Попробовав свой код на другой странице, я думаю, что ваша проблема связана с веб-интерфейсом вашего сервера.

Например, вы можете попробовать запрос GET на странице Google, содержащей символы "é":

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
params.setBooleanParameter("http.protocol.expect-continue", false);
HttpClient httpclient = new DefaultHttpClient(params);

HttpGet httpget = new HttpGet("http://www.google.ch/search?sourceid=chrome&ie=UTF-8&q=www.google.frb%C3%A9b%C3%A9&qscrl=1#sclient=psy&hl=fr&qscrl=1&source=hp&q=b%C3%A9b%C3%A9&aq=&aqi=&aql=f&oq=&pbx=1&fp=b4d89b2783e136eb&pf=p&pdl=300");

    try
    {
         HttpResponse response = httpclient.execute(httpget);

         HttpEntity entity = response.getEntity();
         String jsonText = EntityUtils.toString(entity, HTTP.UTF_8);
         Log.d("TEST", jsonText);
         Toast.makeText(this, jsonText, Toast.LENGTH_LONG).show();
    }
    catch (Exception e)
    {
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...