diff options
author | Florian Frank <flori@ping.de> | 2012-05-10 02:13:05 +0200 |
---|---|---|
committer | Florian Frank <flori@ping.de> | 2012-05-10 02:47:37 +0200 |
commit | 00cb1bce00254249d1e312da885b89cd8f2e0299 (patch) | |
tree | d878290b1388c4c892410a3e143f8567609ad5d9 /java/src/json/ext/Generator.java | |
parent | 2797901a526a5bc95167c7eedd6d19a39b7a2ce9 (diff) | |
download | json-00cb1bce00254249d1e312da885b89cd8f2e0299.tar.gz |
enforce utf8 encoding in parsed stringsjruby-fix-encoding
Diffstat (limited to 'java/src/json/ext/Generator.java')
-rw-r--r-- | java/src/json/ext/Generator.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/java/src/json/ext/Generator.java b/java/src/json/ext/Generator.java index 78dc078..ecceb27 100644 --- a/java/src/json/ext/Generator.java +++ b/java/src/json/ext/Generator.java @@ -167,9 +167,16 @@ public final class Generator { } RubyString generateNew(Session session, T object) { + RubyString result; ByteList buffer = new ByteList(guessSize(session, object)); generate(session, object, buffer); - return RubyString.newString(session.getRuntime(), buffer); + result = RubyString.newString(session.getRuntime(), buffer); + ThreadContext context = session.getContext(); + RuntimeInfo info = session.getInfo(); + if (info.encodingsSupported()) { + result.force_encoding(context, info.utf8.get()); + } + return result; } abstract void generate(Session session, T object, ByteList buffer); |