aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsync
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2015-02-15 22:26:08 -0800
committerKoushik Dutta <koushd@gmail.com>2015-02-15 22:26:08 -0800
commit80c9a2c90570a73924e4683b5f8b518f001ef57e (patch)
tree8ec9392abd9ceabbb354f626303c2d3ec5637eb1 /AndroidAsync
parentf3da7a7d5e2238648700e976e179d7e7568d7bf5 (diff)
downloadAndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.tar.gz
AndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.tar.bz2
AndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.zip
allow forcing a charset for string parsing.
Diffstat (limited to 'AndroidAsync')
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java b/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java
index 89a611c..5a9f880 100644
--- a/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java
+++ b/AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java
@@ -13,6 +13,15 @@ import java.nio.charset.Charset;
* Created by koush on 5/27/13.
*/
public class StringParser implements AsyncParser<String> {
+ Charset forcedCharset;
+
+ public StringParser() {
+ }
+
+ public StringParser(Charset charset) {
+ this.forcedCharset = charset;
+ }
+
@Override
public Future<String> parse(DataEmitter emitter) {
final String charset = emitter.charset();
@@ -20,7 +29,10 @@ public class StringParser implements AsyncParser<String> {
.then(new TransformFuture<String, ByteBufferList>() {
@Override
protected void transform(ByteBufferList result) throws Exception {
- setComplete(result.readString(charset != null ? Charset.forName(charset) : null));
+ Charset charsetToUse = forcedCharset;
+ if (charsetToUse == null && charset != null)
+ charsetToUse = Charset.forName(charset);
+ setComplete(result.readString(charsetToUse));
}
});
}