Android: the android client obtains garbled data from the server.
Send an HTTP request to the server. The received JSON package is response. Use String content = EntityUtils. toString (response. getEntity (), "UTF-8"); Chinese garbled characters are still involved in decoding, followed
String name = new String(response.getBytes("iso-8859-1"), "UTF-8");
It does not help. Think of the server as if it was coded with URLENCODER, with a try attitude behind return added a URLDecoder. decode (content, "UTF-8"); it really works! However, I still don't quite understand the differences between URLDecoder. decode (content, "UTF-8") and EntityUtils. toString (response. getEntity (), "UTF-8") during decoding. The following is the network code:
Package com. trilink. ibeaconlocationdisplay. utils; import java. io. unsupportedEncodingException; import java. util. list; import org. apache. http. httpResponse; import org. apache. http. httpStatus; import org. apache. http. nameValuePair; import org. apache. http. client. httpClient; import org. apache. http. client. entity. urlEncodedFormEntity; import org. apache. http. client. methods. httpPost; import org. apache. http. impl. clien T. defaultHttpClient; import org. apache. http. params. basicHttpParams; import org. apache. http. params. httpConnectionParams; import org. apache. http. util. entityUtils; import android. util. log; public class NetworkService {private static String TAG = "NetworkService"; // private static String url_ip = ServerUrl. SERVER_ADRESS + "UserInfoServlet? "; // Private static String url_ip =" http: // 192.168.1.231: 8080/indoor/";/*** release resource */public static void cancel () {Log. I (TAG, "cancel! "); // If (conn! = Null) {// conn. cancel (); // public static String getPostResult (String url) that is passed without parameters {// create an http request object HttpPost post = new HttpPost (url ); // create HttpParams to set the HTTP parameter BasicHttpParams httpParams = new BasicHttpParams (); HttpConnectionParams. setConnectionTimeout (httpParams, 10*1000); HttpConnectionParams. setSoTimeout (httpParams, 10*1000); // create a network access processing object HttpClient httpClient = new DefaultHttpClient (httpParams); t Ry {// execute the request parameter HttpResponse response = httpClient.exe cute (post); // determine whether the request is successful if (response. getStatusLine (). getStatusCode () = HttpStatus. SC _ OK) {// obtain the response String content = EntityUtils. toString (response. getEntity (); return URLDecoder. decode (content, "UTF-8") ;}} catch (Exception e) {e. printStackTrace (); return "{\" status \ ": 405, \" resultMsg \ ": \" Network timeout! \ "}" ;}Finally {// release the network connection resource httpClient. getConnectionManager (). shutdown ();} return "{\" status \ ": 405, \" resultMsg \ ": \" Network timeout! \ "}" ;}// Public static String getPostResult (String url, List <NameValuePair> paramList) {UrlEncodedFormEntity entity = null; try {entity = new UrlEncodedFormEntity (paramList, "UTF-8");} catch (UnsupportedEncodingException e1) {// TODO Auto-generated catch blocke1.printStackTrace ();} // create an http request object HttpPost post = new HttpPost (url); BasicHttpParams httpParams = new BasicHttpParams (); HttpConnectionParam S. setConnectionTimeout (httpParams, 10*1000); HttpConnectionParams. setSoTimeout (httpParams, 10*1000); post. setEntity (entity); // create the network access processing object HttpClient httpClient = new DefaultHttpClient (httpParams); try {// execute the request parameter HttpResponse response = httpClient.exe cute (post ); // determine whether the request is successful if (response. getStatusLine (). getStatusCode () = HttpStatus. SC _ OK) {// obtain the response String content = EntityUtils. toString (response. getEntity (), UTF-8); return URLDecoder. decode (content, "UTF-8") ;}} catch (Exception e) {e. printStackTrace (); return "{\" status \ ": 405, \" resultMsg \ ": \" Network timeout! \ "}" ;}Finally {// release the network connection resource httpClient. getConnectionManager (). shutdown ();} return "{\" status \ ": 405, \" resultMsg \ ": \" Network timeout! \"}";}}
How can I solve the garbled error when I push messages to the android client notification bar from the content queried by the database on the background server?
It may be the encoding problem, when you get the data on the server for transcoding, to UTF-8, or GBK try
The android client submits Chinese data to the background. How can this problem be solved by garbled code?
Hello, URLEncoder. encode (photoAddress, "UTF-8 ")"&"). append ("PhotoDesc =" URLEncoder. encode (photoDesc, "UTF-8") "&") in the above Code, "UTF-8" should be changed to "GBK"