Volley 이용시에 한글 깨질때 UTF-8로 변경

by 조쉬 posted Dec 14, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

Volley 를 이용하여 쓰레드를 신경쓰지 않고 코딩할 수 있는데,

외부 API 주소를 통하여 json 이나 xml 코드를 땡겨올때 한글 문자들이 깨지는 현상을 발견했다.

 

 

아래의 소스를 바탕으로 parseNetworkResponse 메소드를 오버라이딩 하도록 하자.

String url="url"
 
StringRequest req=new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        /// 소스코드 ///
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
 
    }
}){
    @Override //response를 UTF8로 변경해주는 소스코드
    protected Response<String> parseNetworkResponse(NetworkResponse response) {
        try {
            String utf8String = new String(response.data, "UTF-8");
            return Response.success(utf8String, HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            // log error
            return Response.error(new ParseError(e));
        } catch (Exception e) {
            // log error
            return Response.error(new ParseError(e));
        }
    }
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        return super.getParams();
    }
};
req.setShouldCache(false);
requestQueue.add(req);