def Charset.init
EncodingConvertMap[['UTF8', 'X_ISO8859_1']] =
Proc.new { |str| str.unpack('U*').pack('C*') }
EncodingConvertMap[['X_ISO8859_1', 'UTF8']] =
Proc.new { |str| str.unpack('C*').pack('U*') }
begin
require 'xsd/iconvcharset'
@internal_encoding = 'UTF8'
sjtag = (/(mswin|bccwin|mingw|cygwin|emx)/ =~ RUBY_PLATFORM) ? 'cp932' :
'shift_jis'
EncodingConvertMap[['UTF8', 'EUC' ]] =
Proc.new { |str| IconvCharset.safe_iconv("euc-jp", "utf-8", str) }
EncodingConvertMap[['EUC' , 'UTF8']] =
Proc.new { |str| IconvCharset.safe_iconv("utf-8", "euc-jp", str) }
EncodingConvertMap[['EUC' , 'SJIS']] =
Proc.new { |str| IconvCharset.safe_iconv(sjtag, "euc-jp", str) }
EncodingConvertMap[['UTF8', 'SJIS']] =
Proc.new { |str| IconvCharset.safe_iconv(sjtag, "utf-8", str) }
EncodingConvertMap[['SJIS', 'UTF8']] =
Proc.new { |str| IconvCharset.safe_iconv("utf-8", sjtag, str) }
EncodingConvertMap[['SJIS', 'EUC' ]] =
Proc.new { |str| IconvCharset.safe_iconv("euc-jp", sjtag, str) }
rescue LoadError
begin
require 'nkf'
EncodingConvertMap[['EUC' , 'SJIS']] =
Proc.new { |str| NKF.nkf('-sXm0', str) }
EncodingConvertMap[['SJIS', 'EUC' ]] =
Proc.new { |str| NKF.nkf('-eXm0', str) }
rescue LoadError
end
begin
require 'uconv'
@internal_encoding = 'UTF8'
EncodingConvertMap[['UTF8', 'EUC' ]] = Uconv.method(:u8toeuc)
EncodingConvertMap[['UTF8', 'SJIS']] = Uconv.method(:u8tosjis)
EncodingConvertMap[['EUC' , 'UTF8']] = Uconv.method(:euctou8)
EncodingConvertMap[['SJIS', 'UTF8']] = Uconv.method(:sjistou8)
rescue LoadError
end
end
end