diff options
-rw-r--r-- | ext/json/ext/generator/generator.c | 4 |
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; |