diff options
author | Ficus Kirkpatrick <ficus@android.com> | 2015-02-20 17:23:18 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-02-20 17:23:18 +0000 |
commit | ee454371157d9a3fb74b70ee8ba93cf96559acf3 (patch) | |
tree | f4751de1398a2e8ec8dda407282903506998ccf4 /src/main/java/com/android | |
parent | 9cb6643f2ae027fefd682e7940009fb4f8f0721e (diff) | |
parent | 6bafd7d28fc7947f263feb7134fc8a70084357c3 (diff) | |
download | volley-ee454371157d9a3fb74b70ee8ba93cf96559acf3.tar.gz |
Merge "Change the default character encoding for JSON responses to UTF-8"
Diffstat (limited to 'src/main/java/com/android')
4 files changed, 22 insertions, 10 deletions
diff --git a/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java index da04490..7306052 100644 --- a/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java +++ b/src/main/java/com/android/volley/toolbox/HttpHeaderParser.java @@ -131,10 +131,14 @@ public class HttpHeaderParser { } /** - * Returns the charset specified in the Content-Type of this header, - * or the HTTP default (ISO-8859-1) if none can be found. + * Retrieve a charset from headers + * + * @param headers An {@link java.util.Map} of headers + * @param defaultCharset Charset to return if none can be found + * @return Returns the charset specified in the Content-Type of this header, + * or the defaultCharset if none can be found. */ - public static String parseCharset(Map<String, String> headers) { + public static String parseCharset(Map<String, String> headers, String defaultCharset) { String contentType = headers.get(HTTP.CONTENT_TYPE); if (contentType != null) { String[] params = contentType.split(";"); @@ -148,6 +152,14 @@ public class HttpHeaderParser { } } - return HTTP.DEFAULT_CONTENT_CHARSET; + return defaultCharset; + } + + /** + * Returns the charset specified in the Content-Type of this header, + * or the HTTP default (ISO-8859-1) if none can be found. + */ + public static String parseCharset(Map<String, String> headers) { + return parseCharset(headers, HTTP.DEFAULT_CONTENT_CHARSET); } } diff --git a/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java index b1eae80..e932a61 100644 --- a/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonArrayRequest.java @@ -45,8 +45,8 @@ public class JsonArrayRequest extends JsonRequest<JSONArray> { @Override protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) { try { - String jsonString = - new String(response.data, HttpHeaderParser.parseCharset(response.headers)); + String jsonString = new String(response.data, + HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET)); return Response.success(new JSONArray(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { diff --git a/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java index 74821cb..2991898 100644 --- a/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonObjectRequest.java @@ -63,8 +63,8 @@ public class JsonObjectRequest extends JsonRequest<JSONObject> { @Override protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { try { - String jsonString = - new String(response.data, HttpHeaderParser.parseCharset(response.headers)); + String jsonString = new String(response.data, + HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET)); return Response.success(new JSONObject(jsonString), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { diff --git a/src/main/java/com/android/volley/toolbox/JsonRequest.java b/src/main/java/com/android/volley/toolbox/JsonRequest.java index f11ac14..95f4ecb 100644 --- a/src/main/java/com/android/volley/toolbox/JsonRequest.java +++ b/src/main/java/com/android/volley/toolbox/JsonRequest.java @@ -32,8 +32,8 @@ import java.io.UnsupportedEncodingException; * @param <T> JSON type of response expected */ public abstract class JsonRequest<T> extends Request<T> { - /** Charset for request. */ - private static final String PROTOCOL_CHARSET = "utf-8"; + /** Default charset for JSON request. */ + protected static final String PROTOCOL_CHARSET = "utf-8"; /** Content type for request. */ private static final String PROTOCOL_CONTENT_TYPE = |