4

One part of my app performs a query (via php) on a mysql database. I use in the database UTF-8 because I have letters like é à ê that need to appear. I read through this problem because this seemed almost the same.

Android Java UTF-8 HttpClient Problem

However when I am implementing the code he replaces every return value with an é as null.

This is my code

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();

So in the jsonText string he replaces return values with a "è" in it by null.

The last line is = entity.getConent(); I added this because I normally use the input stream to read it but this does not work as well.

Somebody has an idea?

This is my php code

<?php
 mysql_select_db("database");
 $q=mysql_query($_REQUEST['query']);
 while($e=mysql_fetch_assoc($q))
 $output[]=$e;
 print(json_encode($output));
 mysql_close();
 ?>
asked Mar 15, 2011 at 21:40
26
  • Are you sure your web interface is in UTF-8? Commented Mar 15, 2011 at 21:53
  • What do you mean? This is my php code... Commented Mar 15, 2011 at 21:57
  • Are you sur your PHP interface you're asking is providing you UTF-8 content and not another encoding ? Commented Mar 15, 2011 at 22:01
  • In mysql I am using a varchar with utf8_bin. Commented Mar 15, 2011 at 22:01
  • I tried to output it by echoing it and it showed me the letters yes... If this is an answer to your question :-) Commented Mar 15, 2011 at 22:03

1 Answer 1

5

After trying your code on another page, I think your problem come from your server web interface.

You can for example try a GET request on a google page containing "é" characters:

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)
 {
 }
answered Mar 16, 2011 at 8:31
Sign up to request clarification or add additional context in comments.

1 Comment

Hi mate! This actually did the trick! I wrote everything in a comma separted file in notepad and uploaded it! Now i see the accents! Thank you very very much!

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.