aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rexml/xmldecl.rb
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-30 12:10:56 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-10-30 12:10:56 +0000
commit994f066f76857a781f8819b8da2c2aeceedbf87b (patch)
treed89e9bcf6ac8d558367f888919de0c4894224063 /lib/rexml/xmldecl.rb
parent767fe5170d97461be5c79936b467dee3d4eb7179 (diff)
downloadruby-994f066f76857a781f8819b8da2c2aeceedbf87b.tar.gz
* lib/rexml/encoding.rb: use Ruby native encoding mechnism. [ruby-dev:42464]
* lib/rexml/encodings/: remove. * lib/rexml/document.rb, lib/rexml/formatters/default.rb, lib/rexml/output.rb, lib/rexml/parseexception.rb, lib/rexml/parsers/baseparser.rb, lib/rexml/source.rb, lib/rexml/xmldecl.rb: use Ruby's native Encoding object. * test/rexml/, test/rss/: follow the above encoding chagnes. * NEWS: add REXML's incompatible change about encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml/xmldecl.rb')
-rw-r--r--lib/rexml/xmldecl.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/rexml/xmldecl.rb b/lib/rexml/xmldecl.rb
index 361e4b7106..81d3057732 100644
--- a/lib/rexml/xmldecl.rb
+++ b/lib/rexml/xmldecl.rb
@@ -109,9 +109,20 @@ module REXML
end
private
+ def normalized_encoding_name(_encoding)
+ if _encoding == ::Encoding::UTF_16BE
+ "UTF-16"
+ else
+ return _encoding.name
+ end
+ end
+
def content(enc)
rv = "version='#@version'"
- rv << " encoding='#{enc}'" if @writeencoding || enc !~ /utf-8/i
+ if @writeencoding || enc.to_s !~ /\Autf-8\z/i
+ encoding_name = normalized_encoding_name(enc)
+ rv << " encoding='#{encoding_name}'"
+ end
rv << " standalone='#@standalone'" if @standalone
rv
end