Android HttpPost数据中文乱码的解决方案

在项目中,以HttpPost方式向服务器上提交数据时,服务器上中文竟然显示乱码,针对该种情况证明解决呢?其实,这样的问题,在架构的时候,就应该考虑到,如果牵扯到各个不同的平台应用,尽量统一使用UTF8编码,可以少很多麻烦。当然在post数据的时候,可以指定编码,请参阅下面的函数:

·

	public Map<String, Object> CreateNote(int albumId, String title,
			String remark) {
		String noteId = "";
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			HttpParams parms = new BasicHttpParams();
			parms.setParameter("charset", HTTP.UTF_8);
	                HttpConnectionParams.setConnectionTimeout(parms, 8 * 1000);
	                HttpConnectionParams.setSoTimeout(parms, 8 * 1000);
			HttpClient httpclient = new DefaultHttpClient(parms);
			HttpPost httppost = new HttpPost(ConfigHelper.CreateUri);
			httppost.addHeader("Authorization", mToken);
			httppost.addHeader("Content-Type", "application/json");		
			httppost.addHeader("charset", HTTP.UTF_8);

			JSONObject obj = new JSONObject();
			obj.put("title", title);
			obj.put("categoryId", mCategoryId);
			obj.put("sourceUrl", GetSourceUri());

			JSONArray arr = new JSONArray();

			arr.put(DateFormat.format("yyyyMM",Calendar.getInstance(Locale.CHINA)));		
			obj.put("tags", arr);
			obj.put("content", remark);	
			httppost.setEntity(new StringEntity(obj.toString(), HTTP.UTF_8));
			HttpResponse response;
			response = httpclient.execute(httppost);
			int code = response.getStatusLine().getStatusCode();
			if (code == ConstanDefine.ErrorCode.SuccOfHttpStatusCode) {
				String rev = EntityUtils.toString(response.getEntity());
				obj = new JSONObject(rev);
				noteId = obj.getString("id");
				map.put("return_code", "0");
				map.put("content", rev);			
			}
		} catch (Exception e) {
			if (map.containsKey("return_code")) {
				map.remove("return_code");
			}
			map.put("return_code", "1");		
		}
		return map;
	}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值