summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Oliver Nutter <headius@headius.com>2013-08-28 13:29:40 -0500
committerCharles Oliver Nutter <headius@headius.com>2013-08-28 13:29:40 -0500
commitb260422d78a64a051a250613e71aa1971511695a (patch)
tree4815096bf45581a1d5e4157352b10d53273e7570
parentb88e676e234880f001fea2d792d959a0a0584cb7 (diff)
downloadpsych-b260422d78a64a051a250613e71aa1971511695a.tar.gz
Use read encoding from IO to set up parser's reader.
-rw-r--r--ext/java/PsychParser.java7
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()));