diff options
-rw-r--r-- | lib/ffi_yajl/encoder.rb | 2 | ||||
-rw-r--r-- | spec/ffi_yajl/encoder_spec.rb | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/ffi_yajl/encoder.rb b/lib/ffi_yajl/encoder.rb index 8c6dce6..a678221 100644 --- a/lib/ffi_yajl/encoder.rb +++ b/lib/ffi_yajl/encoder.rb @@ -41,7 +41,7 @@ module FFI_Yajl # call either the ext or ffi hook str = do_yajl_encode(obj, yajl_gen_opts, opts) # we can skip cleaning the whole string for utf-8 issues if we have yajl validate as we go - str.encode("utf-8", "binary", :undef => :replace) unless yajl_gen_opts[:yajl_gen_validate_utf8] + str.encode!("utf-8", "binary", :undef => :replace) unless yajl_gen_opts[:yajl_gen_validate_utf8] str end diff --git a/spec/ffi_yajl/encoder_spec.rb b/spec/ffi_yajl/encoder_spec.rb index 7dbe4d0..acd7fcf 100644 --- a/spec/ffi_yajl/encoder_spec.rb +++ b/spec/ffi_yajl/encoder_spec.rb @@ -197,6 +197,10 @@ describe "FFI_Yajl::Encoder" do expect{ encoder.encode(ruby) }.not_to raise_error end + it "returns utf8" do + expect( encoder.encode(ruby).encoding ).to eq(Encoding::UTF_8) + end + it "returns valid utf8" do expect( encoder.encode(ruby).valid_encoding? ).to be true end |