1 module REXML
2 module Encoding
3 begin
4 require 'uconv'
5
6 def decode_sjis content
7 Uconv::sjistou8(content)
8 end
9
10 def encode_sjis(str)
11 Uconv::u8tosjis(str)
12 end
13 rescue LoadError
14 require 'nkf'
15
16 SJISTOU8 = '-Swm0x'
17 U8TOSJIS = '-Wsm0x'
18
19 def decode_sjis(str)
20 NKF.nkf(SJISTOU8, str)
21 end
22
23 def encode_sjis content
24 NKF.nkf(U8TOSJIS, content)
25 end
26 end
27
28 b = proc do |obj|
29 class << obj
30 alias decode decode_sjis
31 alias encode encode_sjis
32 end
33 end
34 register("SHIFT-JIS", &b)
35 register("SHIFT_JIS", &b)
36 end
37 end