diff options
author | Koushik Dutta <koushd@gmail.com> | 2015-02-15 22:26:08 -0800 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2015-02-15 22:26:08 -0800 |
commit | 80c9a2c90570a73924e4683b5f8b518f001ef57e (patch) | |
tree | 8ec9392abd9ceabbb354f626303c2d3ec5637eb1 /AndroidAsync/src/com | |
parent | f3da7a7d5e2238648700e976e179d7e7568d7bf5 (diff) | |
download | AndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.tar.gz AndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.tar.bz2 AndroidAsync-80c9a2c90570a73924e4683b5f8b518f001ef57e.zip |
allow forcing a charset for string parsing.
Diffstat (limited to 'AndroidAsync/src/com')
-rw-r--r-- | AndroidAsync/src/com/koushikdutta/async/parser/StringParser.java | 14 |
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)); } }); } |