Android httppost 上传文件 中文乱码

利用CustomMultipartEntity附加的内容;
按照网上的指示,为httppost设置编码,new FileBody时转码,统统不好使!
真心求助!!
核心代码如下:
@Override
protected String doInBackground(String... params) {
String serverResponse = null;

    HttpClient httpClient = new DefaultHttpClient();
    HttpContext httpContext = new BasicHttpContext();
    HttpPost httpPost = new HttpPost(url);

    try {
        ProgressListener listenner = new ProgressListener() {
            @Override
            public void transferred(long num) {
                publishProgress((int) ((num / (float) totalSize) * 100));
            }
        };
        CustomMultipartEntity multipartContent = new CustomMultipartEntity(listenner);

        // We use FileBody to transfer an image

         if (paraMap != null && !paraMap.isEmpty()) {
             for (Map.Entry<String, String> entry : paraMap.entrySet()) {
                 multipartContent.addPart(entry.getKey(), new StringBody(entry.getValue()));
             }
         }
         multipartContent.addPart("data", new FileBody(file,HTTP.UTF_8));
        totalSize = multipartContent.getContentLength();

        // Send it
        httpPost.setEntity(multipartContent);
        HttpResponse response = httpClient.execute(httpPost);
        serverResponse = EntityUtils.toString(response.getEntity());
        JSONObject jsons = new JSONObject(serverResponse);
         zid = jsons.optString("zid");
         filepath = jsons.optString("filepath");
         guid = jsons.optString("guid");
         //file.delete();    
    } catch (Exception e) {
        e.printStackTrace();
    }

    return serverResponse;
}

multipartContent.addPart(entry.getKey(), new StringBody(entry.getValue()));
这里不对,应该按照二进制上传

在收到的response里把拿到的数据转成utf8

http中传输一般为utf8编码,所有你可以先把文件utf8编码一下,然后再上传。服务器再对应解析。

HttpClient?2015年就淘汰了吧?