mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rexml/source.rb (REXML::IOSource#encoding_updated): Fix a
bug that can't parse XML correctly when Encoding.default_internal is different with XML encoding. REXML::Source converts XML encoding on read. So IO should not convert XML encoding. Based on patch by NAKAMURA Usaku. [ruby-dev:48686] [Bug #10418] * test/rexml/test_encoding.rb (REXMLTests::EncodingTester#test_parse_utf16_with_utf8_default_internal): Add the for the above case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f6c56982ab
commit
93647e81a6
3 changed files with 24 additions and 1 deletions
14
ChangeLog
14
ChangeLog
|
@ -1,3 +1,17 @@
|
|||
Thu Oct 23 17:19:04 2014 Kouhei Sutou <kou@cozmixng.org>
|
||||
|
||||
* lib/rexml/source.rb (REXML::IOSource#encoding_updated): Fix a
|
||||
bug that can't parse XML correctly when
|
||||
Encoding.default_internal is different with XML
|
||||
encoding. REXML::Source converts XML encoding on read. So IO
|
||||
should not convert XML encoding.
|
||||
Based on patch by NAKAMURA Usaku.
|
||||
[ruby-dev:48686] [Bug #10418]
|
||||
|
||||
* test/rexml/test_encoding.rb
|
||||
(REXMLTests::EncodingTester#test_parse_utf16_with_utf8_default_internal):
|
||||
Add the for the above case.
|
||||
|
||||
Thu Oct 23 16:29:02 2014 Kouhei Sutou <kou@cozmixng.org>
|
||||
|
||||
* test/rexml/test_encoding.rb
|
||||
|
|
|
@ -285,7 +285,7 @@ module REXML
|
|||
case @encoding
|
||||
when "UTF-16BE", "UTF-16LE"
|
||||
@source.binmode
|
||||
@source.set_encoding(@encoding)
|
||||
@source.set_encoding(@encoding, @encoding)
|
||||
end
|
||||
@line_break = encode(">")
|
||||
@pending_buffer, @buffer = @buffer, ""
|
||||
|
|
|
@ -94,5 +94,14 @@ module REXMLTests
|
|||
assert_equal("UTF-16", utf16.encoding)
|
||||
assert( utf16[0].kind_of?(REXML::XMLDecl))
|
||||
end
|
||||
|
||||
def test_parse_utf16_with_utf8_default_internal
|
||||
EnvUtil.with_default_internal("UTF-8") do
|
||||
utf16 = File.open(fixture_path("utf16.xml")) do |f|
|
||||
REXML::Document.new(f)
|
||||
end
|
||||
assert_equal("UTF-16", utf16.encoding)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue