Skip to content

Commit b683d5b

Browse files
committed
Parse string values as UTF-8
1 parent e6c9ec6 commit b683d5b

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

ext/fast_jsonparser/fast_jsonparser.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ static VALUE make_ruby_object(dom::element element)
4848
case dom::element_type::STRING:
4949
{
5050
std::string_view view(element);
51-
return rb_str_new(view.data(), view.size());
51+
return rb_utf8_str_new(view.data(), view.size());
5252
}
5353
case dom::element_type::BOOL:
5454
{

test/fast_jsonparser_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# frozen_string_literal: true
2+
13
require "test_helper"
24
require 'tempfile'
35
require 'json'
@@ -18,6 +20,12 @@ def test_json_parse_is_working
1820
assert_equal result[:a], "Alpha"
1921
end
2022

23+
def test_string_encoding
24+
result = FastJsonparser.parse('"École"')
25+
assert_equal Encoding::UTF_8, result.encoding
26+
assert_equal "École", result
27+
end
28+
2129
def test_file_stream_is_working
2230
assert_nil FastJsonparser.load_many('./benchmark/nginx_json_logs.json') {}
2331
end

0 commit comments

Comments
 (0)