summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/json/ext/generator/generator.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/json/ext/generator/generator.c b/ext/json/ext/generator/generator.c
index 2cd1629..558f28d 100644
--- a/ext/json/ext/generator/generator.c
+++ b/ext/json/ext/generator/generator.c
@@ -359,12 +359,16 @@ static VALUE mString_to_json(int argc, VALUE *argv, VALUE self)
{
VALUE result = rb_str_buf_new(RSTRING_LEN(self));
rb_str_buf_cat2(result, "\"");
+#ifdef HAVE_RUBY_ENCODING_H
if (rb_funcall(self, i_encoding, 0) == mEncoding_UTF_8) {
JSON_convert_UTF8_to_JSON(result, self, strictConversion);
} else {
VALUE string = rb_funcall(self, i_encode, 1, mEncoding_UTF_8);
JSON_convert_UTF8_to_JSON(result, string, strictConversion);
}
+#else
+ JSON_convert_UTF8_to_JSON(result, self, strictConversion);
+#endif
rb_str_buf_cat2(result, "\"");
FORCE_UTF8(result);
return result;