diff --git a/lib/nokogiri/xml/node.rb b/lib/nokogiri/xml/node.rb index 494e76abc6..604b3e46e7 100644 --- a/lib/nokogiri/xml/node.rb +++ b/lib/nokogiri/xml/node.rb @@ -1191,7 +1191,7 @@ def serialize(*args, &block) options[:encoding] ||= document.encoding encoding = Encoding.find(options[:encoding] || "UTF-8") - io = StringIO.new(String.new(encoding: encoding), "wb:#{encoding}:#{encoding}") + io = StringIO.new(String.new(encoding: encoding)) write_to(io, options, &block) io.string diff --git a/test/xml/test_document_encoding.rb b/test/xml/test_document_encoding.rb index e4b3f89a6b..67b5cf05ae 100644 --- a/test/xml/test_document_encoding.rb +++ b/test/xml/test_document_encoding.rb @@ -50,7 +50,7 @@ class TestDocumentEncoding < Nokogiri::TestCase # the document needs to be large enough to trigger a libxml2 buffer flush. the buffer size # is determined by MINLEN in xmlIO.c, which is hardcoded to 4000 code points. - size = 4000 + size = 8000 input = String.new(<<~XML, encoding: "UTF-16")