summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-04-24 15:06:16 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-04-24 15:06:16 -0700
commit869c9673c67b055dc4115223635d6bd396fc69e0 (patch)
treef06a68d451d2cec73a7e28b58286c7b48e083d46
parent51a51d2d67dbbe749901f91ed9c1611543943d98 (diff)
downloadffi-yajl-869c9673c67b055dc4115223635d6bd396fc69e0.tar.gz
derp, really force to utf8, really check
-rw-r--r--lib/ffi_yajl/encoder.rb2
-rw-r--r--spec/ffi_yajl/encoder_spec.rb4
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