2016-12-09 17 views
-1

我是新來的android和排球,我在this鏈接做了一個教程。但是當我解析數據庫中的數據時,結果就是「?????」替換俄語字符。由於我是編程新手,我無法在下面的代碼中添加UTF-8。我真的想顯示在哪裏添加額外的代碼,所以它不僅閱讀其他語言,而且還閱讀英文。提前致謝。額外的代碼可以從下面提供的鏈接中看到。JSON UTF-8編碼排球Android

private void callNews(int page){ 
 

 
     swipe.setRefreshing(true); 
 

 
     // Creating volley request obj 
 
     JsonArrayRequest arrReq = new JsonArrayRequest(url_list + page, 
 
       new Response.Listener<JSONArray>() { 
 
        @Override 
 
        public void onResponse(JSONArray response) { 
 
         Log.d(TAG, response.toString()); 
 

 
         if (response.length() > 0) { 
 
          // Parsing json 
 
          for (int i = 0; i < response.length(); i++) { 
 
           try { 
 

 
            JSONObject obj = response.getJSONObject(i); 
 
            NewsData news = new NewsData(); 
 

 
            no = obj.getInt(TAG_NO); 
 

 
            news.setId(obj.getString(TAG_ID)); 
 
            news.setJudul(obj.getString(TAG_JUDUL)); 
 

 
            if (obj.getString(TAG_GAMBAR) != "") { 
 
             news.setGambar(obj.getString(TAG_GAMBAR)); 
 
            } 
 

 
            news.setDatetime(obj.getString(TAG_TGL)); 
 
            news.setIsi(obj.getString(TAG_ISI)); 
 

 
            // adding news to news array 
 
            newsList.add(news); 
 

 
            if (no > offSet) 
 
             offSet = no; 
 

 
            Log.d(TAG, "offSet " + offSet); 
 

 
           } catch (JSONException e) { 
 
            Log.e(TAG, "JSON Parsing error: " + e.getMessage()); 
 
           } 
 

 
           // notifying list adapter about data changes 
 
           // so that it renders the list view with updated data 
 
           adapter.notifyDataSetChanged(); 
 
          } 
 
         } 
 
         swipe.setRefreshing(false); 
 
        } 
 

 
       }, new Response.ErrorListener() { 
 

 
      @Override 
 
      public void onErrorResponse(VolleyError error) { 
 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
 
       swipe.setRefreshing(false); 
 
      } 
 
     }); 
 

 
     // Adding request to request queue 
 
     AppController.getInstance().addToRequestQueue(arrReq); 
 
    }

+0

AFAIK沒有旅遊代碼的問題,但與服務器響應... fx內容類型的字符集是不同於在響應正文 – Selvin

+0

親愛的Selvin,但如何解決內容類型 –

回答

0

對於那些誰可能是尋求相同的解決方案。我通過將「obj.getString」更改爲「news.setJudul(new String(obj.getString(TAG_JUDUL).getBytes(」UTF-8「)));」來獲得解決方案。