diff options
author | Charles Oliver Nutter <headius@headius.com> | 2013-08-28 13:29:40 -0500 |
---|---|---|
committer | Charles Oliver Nutter <headius@headius.com> | 2013-08-28 13:29:40 -0500 |
commit | b260422d78a64a051a250613e71aa1971511695a (patch) | |
tree | 4815096bf45581a1d5e4157352b10d53273e7570 | |
parent | b88e676e234880f001fea2d792d959a0a0584cb7 (diff) | |
download | psych-b260422d78a64a051a250613e71aa1971511695a.tar.gz |
Use read encoding from IO to set up parser's reader.
-rw-r--r-- | ext/java/PsychParser.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/java/PsychParser.java b/ext/java/PsychParser.java index e7354b8..8de5e3a 100644 --- a/ext/java/PsychParser.java +++ b/ext/java/PsychParser.java @@ -149,6 +149,13 @@ public class PsychParser extends RubyObject { return new StreamReader(isr); } + if (yaml instanceof RubyIO) { + RubyIO io = (RubyIO)yaml; + + InputStreamReader isr = new InputStreamReader(new IOInputStream(io), io.getReadEncoding().getCharset()); + return new StreamReader(isr); + } + // fall back on IOInputStream, using default charset if (yaml.respondsTo("read")) { return new StreamReader(new InputStreamReader(new IOInputStream(yaml), Charset.defaultCharset())); |