diff options
Diffstat (limited to 'lib/rexml/encodings/UTF-16.rb')
-rw-r--r-- | lib/rexml/encodings/UTF-16.rb | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/lib/rexml/encodings/UTF-16.rb b/lib/rexml/encodings/UTF-16.rb index 31f2d81a5b..ecfc4f9945 100644 --- a/lib/rexml/encodings/UTF-16.rb +++ b/lib/rexml/encodings/UTF-16.rb @@ -1,27 +1,29 @@ module REXML - module Encoding - def encode content - array_utf8 = content.unpack("U*") - array_enc = [] - array_utf8.each do |num| - if ((num>>16) > 0) - array_enc << 0 - array_enc << ?? - else - array_enc << (num >> 8) - array_enc << (num & 0xFF) - end - end - array_enc.pack('C*') - end + module Encoding + @@__REXML_encoding_string =<<-EOL + def encode content + array_utf8 = content.unpack("U*") + array_enc = [] + array_utf8.each do |num| + if ((num>>16) > 0) + array_enc << 0 + array_enc << ?? + else + array_enc << (num >> 8) + array_enc << (num & 0xFF) + end + end + array_enc.pack('C*') + end - def decode(str) - array_enc=str.unpack('C*') - array_utf8 = [] - 2.step(arrayEnc.size-1, 2){|i| - array_utf8 << (array_enc.at(i+1) + array_enc.at(i)*0x100) - } - array_utf8.pack('U*') - end - end + def decode(str) + array_enc=str.unpack('C*') + array_utf8 = [] + 2.step(array_enc.size-1, 2){|i| + array_utf8 << (array_enc.at(i+1) + array_enc.at(i)*0x100) + } + array_utf8.pack('U*') + end + EOL + end end |