관리 메뉴

웹개발자의 기지개

[안드로이드] Volley 이용시에 한글 깨질때 UTF-8로 변경 본문

안드로이드

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

http://portfolio.wonpaper.net 2020. 5. 28. 10:31

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

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

 

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

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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<StringString> getParams() throws AuthFailureError {
        return super.getParams();
    }
};
req.setShouldCache(false);
requestQueue.add(req);
cs

 

참고 포스팅 : https://honeyinfo7.tistory.com/78

Comments