Android以post方式傳輸中文出現亂碼解決辦法

 在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();  

 }

 

 } 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章