diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-09-11 02:48:17 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-09-11 02:48:17 +0000 |
commit | f2ad09d5b7cdea64963433af13a9525bebc19a78 (patch) | |
tree | f89148671efd94b1acfbbd299ceae518a5137ec7 /lib/rexml/encodings | |
parent | 390b340d52ffe7e7d09601dc7c4ba189cfe11f21 (diff) | |
download | ruby-f2ad09d5b7cdea64963433af13a9525bebc19a78.tar.gz |
* lib/rexml/source.rb (REXML::Source::encoding): should not
convert the body twice. [ruby-core:08828]
* lib/rexml/encoding.rb (REXML::Encoding::encoding):
Encoding#encoding= to return boolean value to tell if the body
is really converted or not.
* lib/rexml/encoding.rb (REXML::Encoding::encoding): Specific
conversion library (e.g. rexml/encodings/UTF-16.rb) to have
higher preceding.
* lib/rexml/encodings/UTF-16.rb (REXML::Encoding::decode_utf16):
UTF-16#decode_utf16 should work strings without BOM.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rexml/encodings')
-rw-r--r-- | lib/rexml/encodings/UTF-16.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/rexml/encodings/UTF-16.rb b/lib/rexml/encodings/UTF-16.rb index 972169755e..792adfd44d 100644 --- a/lib/rexml/encodings/UTF-16.rb +++ b/lib/rexml/encodings/UTF-16.rb @@ -16,9 +16,10 @@ module REXML end def decode_utf16(str) + str = str[2..-1] if /^\376\377/ =~ str array_enc=str.unpack('C*') array_utf8 = [] - 2.step(array_enc.size-1, 2){|i| + 0.step(array_enc.size-1, 2){|i| array_utf8 << (array_enc.at(i+1) + array_enc.at(i)*0x100) } array_utf8.pack('U*') |