diff options
Diffstat (limited to 'lib/rexml/encodings/SHIFT-JIS.rb')
-rw-r--r-- | lib/rexml/encodings/SHIFT-JIS.rb | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/lib/rexml/encodings/SHIFT-JIS.rb b/lib/rexml/encodings/SHIFT-JIS.rb index 2c2a6890c8..e7dc6339ae 100644 --- a/lib/rexml/encodings/SHIFT-JIS.rb +++ b/lib/rexml/encodings/SHIFT-JIS.rb @@ -1 +1,37 @@ -require 'rexml/encodings/SHIFT_JIS' +begin + require 'iconv' + + module REXML + module Encoding + @@__REXML_encoding_methods =<<-EOL + def decode(str) + return Iconv::iconv("utf-8", "shift-jis", str)[0] + end + + def encode content + return Iconv::iconv("shift-jis", "utf-8", content)[0] + end + EOL + end + end +rescue LoadError + begin + require 'uconv' + + module REXML + module Encoding + @@__REXML_encoding_methods =<<-EOL + def to_shift_jis content + Uconv::u8tosjis(content) + end + + def from_shift_jis(str) + Uconv::sjistou8(str) + end + EOL + end + end + rescue LoadError + raise "uconv or iconv is required for Japanese encoding support." + end +end |