diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-28 12:42:37 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-28 12:42:37 +0000 |
commit | a7322e3678d8c5be0e528a346fa42444325e5349 (patch) | |
tree | 8634ad836a7aac3bc0e812baa0f793609f178340 /lib/rexml | |
parent | a750424cab13cab79de7d7922f32f31be6f415f3 (diff) | |
download | ruby-a7322e3678d8c5be0e528a346fa42444325e5349.tar.gz |
* lib/rexml/parsers/baseparser.rb: Fix a bug that UTF-8 is used
for UTF-16XX encoded XML that doesn't have encoding="UTF-16" in
XML declration.
* test/rexml/test_document.rb: Add tests for the above change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml')
-rw-r--r-- | lib/rexml/parsers/baseparser.rb | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/rexml/parsers/baseparser.rb b/lib/rexml/parsers/baseparser.rb index dc4a1c8bee..a88896c5db 100644 --- a/lib/rexml/parsers/baseparser.rb +++ b/lib/rexml/parsers/baseparser.rb @@ -215,6 +215,9 @@ module REXML if need_source_encoding_update?(encoding) @source.encoding = encoding end + if encoding.nil? and /\AUTF-16(?:BE|LE)\z/i =~ @source.encoding + encoding = "UTF-16" + end standalone = STANDALONE.match(results) standalone = standalone[1] unless standalone.nil? return [ :xmldecl, version, encoding, standalone ] |