众所周知,json数据格式是UTF-8的。所以客户端向服务器传输中文的时候如果不转换成UTF-8格式的,就会出现乱码,这个时候就必须将要上传的数据转换成UTF-8格式。
如果用MultipartEntity这个开源包来上传的话,可作如下的转换:
MultipartEntity reqEntity = new MultipartEntity();
StringBody contentBody = new StringBody(message, Charset.forName("UTF-8"));
reqEntity.addPart("content", contentBody);
其中,message是要上传的字符串,这样转换以后就不会出现乱码问题。
如果用android-async-http 这个库的话,可以如下:
StringEntity entity = new StringEntity(json.toString(), "UTF-8");
然后提交的时候传入entity这个参数即可。