在Android開發中,以HttpPost方式向服務器上提交中文數據時,如果沒有設置傳輸數據的編碼類型,在服務端獲取到的數據就會出現亂碼。在涉及不同平臺上的應用,我們儘量使用UTF-8編碼格式傳輸中文數據,HttpPost方式傳輸中文指定編碼可以參考以下方法:
/**
* 向服務端提交數據
*/
public void notesubmit(){
......
......
httpClient = new DefaultHttpClient();
post = new HttpPost(url);
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
NameValuePair pair1 = new BasicNameValuePair("title","中文");
NameValuePair pair2 = new BasicNameValuePair("content","中文");
pairs.add(pair1);
pairs.add(pair2);
//以post方式傳輸數據到服務端
try {
HttpEntity entity = new UrlEncodedFormEntity(pairs,HTTP.UTF_8);//設置編碼,防止中間亂碼
post = new HttpPost(url);
post.setEntity(entity);
httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(post);
//服務端返回的數據
String data = EntityUtils.toString(response.getEntity());
......
......
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// 釋放連接
httpClient.getConnectionManager().shutdown();
}
}
Android以post方式傳輸中文出現亂碼解決辦法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.