2016-11-05 7 views
0

私は、WebサイトからテキストファイルをダウンロードするのにVolleyを使用しています。Volley(UTF-8)を使用した非ラテン文字による応答

これはサンプルテキストファイルの内容です:私はメモ帳であることを置く

NEONWönn30€KostümのgrößterSPASS TESTTESTTESTTEST★★★★TESTTEST ::: TEST

とSaveFileDialogで 'Encoding UTF-8'を選択しました。 サーバマネージャのFilezillaで、ファイルをアップロードする前に「Force UTF-8」を選択しました。私は、応答は次のようになります。バレーボールでそれをダウンロードし

NEONWönn30â¬KostümgröÃterのSpaA TESTTESTTESTTESTââââTESTTEST::: TESTここ

私の方法です:

public static void getRequest(String url) { 
    RequestQueue queue = Volley.newRequestQueue(activity); 

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        //response is gibberish :/ 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e("VolleyError", error.toString()); 

     } 
    }); 
    stringRequest.setShouldCache(false); 
    // Add the request to the RequestQueue. 
    queue.add(stringRequest); 
} 

VolleyがUTF-8エンコーディングを使用するように強制することでこれを修正する方法はありますか?

+0

をあなたのタイトルから「解決」を削除し、適切な答えとして見つかったソリューションを投稿してください。 – usr2564301

答えて

1

私は、このメソッドをオーバーライドする必要がありました:

@Override 
protected Response<String> parseNetworkResponse(
     NetworkResponse response) { 

    String strUTF8 = null; 
    try { 
     strUTF8 = new String(response.data, "UTF-8"); 

    } catch (UnsupportedEncodingException e) { 

     e.printStackTrace(); 
    } 
    return Response.success(strUTF8, 
      HttpHeaderParser.parseCacheHeaders(response)); 
} 
関連する問題