summaryrefslogtreecommitdiff
path: root/java/src/json/ext/Generator.java
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2012-05-10 02:13:05 +0200
committerFlorian Frank <flori@ping.de>2012-05-10 02:47:37 +0200
commit00cb1bce00254249d1e312da885b89cd8f2e0299 (patch)
treed878290b1388c4c892410a3e143f8567609ad5d9 /java/src/json/ext/Generator.java
parent2797901a526a5bc95167c7eedd6d19a39b7a2ce9 (diff)
downloadjson-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.java9
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);