summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb')
-rw-r--r--ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb b/ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb
new file mode 100644
index 0000000000..93c7877afd
--- /dev/null
+++ b/ruby_1_8_6/lib/rexml/encodings/SHIFT-JIS.rb
@@ -0,0 +1,37 @@
+module REXML
+ module Encoding
+ begin
+ require 'uconv'
+
+ def decode_sjis content
+ Uconv::sjistou8(content)
+ end
+
+ def encode_sjis(str)
+ Uconv::u8tosjis(str)
+ end
+ rescue LoadError
+ require 'nkf'
+
+ SJISTOU8 = '-Swm0'
+ U8TOSJIS = '-Wsm0'
+
+ def decode_sjis(str)
+ NKF.nkf(SJISTOU8, str)
+ end
+
+ def encode_sjis content
+ NKF.nkf(U8TOSJIS, content)
+ end
+ end
+
+ b = proc do |obj|
+ class << obj
+ alias decode decode_sjis
+ alias encode encode_sjis
+ end
+ end
+ register("SHIFT-JIS", &b)
+ register("SHIFT_JIS", &b)
+ end
+end