在项目中,以HttpPost方式向服务器上提交数据时,服务器上中文竟然显示乱码,针对该种情况证明解决呢?其实,这样的问题,在架构的时候,就应该考虑到,如果牵扯到各个不同的平台应用,尽量统一使用UTF8编码,可以少很多麻烦。当然在post数据的时候,可以指定编码,请参阅下面的函数:
转自:http://www.open-open.com/lib/view/open1328168459890.html
01 | public Map<String, Object> CreateNote(intalbumId, String title, |
02 | String remark) { |
03 | String noteId =""; |
04 | Map<String, Object> map =new
HashMap<String, Object>(); |
05 | try{ |
06 | HttpParams parms =new
BasicHttpParams(); |
07 | parms.setParameter("charset", HTTP.UTF_8); |
08 | HttpConnectionParams.setConnectionTimeout(parms,8
* 1000); |
09 | HttpConnectionParams.setSoTimeout(parms,8
* 1000); |
10 | HttpClient httpclient =new
DefaultHttpClient(parms); |
11 | HttpPost httppost =new
HttpPost(ConfigHelper.CreateUri); |
12 | httppost.addHeader("Authorization", mToken); |
13 | httppost.addHeader("Content-Type","application/json");
|
14 | httppost.addHeader("charset", HTTP.UTF_8); |
15 |
16 | JSONObject obj =new
JSONObject(); |
17 | obj.put("title", title); |
18 | obj.put("categoryId", mCategoryId); |
19 | obj.put("sourceUrl", GetSourceUri()); |
20 |
21 | JSONArray arr =new
JSONArray(); |
22 |
23 | arr.put(DateFormat.format("yyyyMM",Calendar.getInstance(Locale.CHINA))); |
24 | obj.put("tags", arr); |
25 | obj.put("content", remark); |
26 | httppost.setEntity(newStringEntity(obj.toString(), HTTP.UTF_8)); |
27 | HttpResponse response; |
28 | response = httpclient.execute(httppost); |
29 | intcode = response.getStatusLine().getStatusCode(); |
30 | if(code == ConstanDefine.ErrorCode.SuccOfHttpStatusCode) { |
31 | String rev = EntityUtils.toString(response.getEntity()); |
32 | obj =new
JSONObject(rev); |
33 | noteId = obj.getString("id"); |
34 | map.put("return_code","0"); |
35 | map.put("content", rev); |
36 | } |
37 | }
catch (Exception e) { |
38 | if(map.containsKey("return_code")) { |
39 | map.remove("return_code"); |
40 | } |
41 | map.put("return_code","1");
|
42 | } |
43 | returnmap; |
44 | } |

1万+

被折叠的 条评论
为什么被折叠?



