utf-8からWindows-31Jにエンコード
Encoder.encode_windows31j('xxx')module Encoder
# Windows-31Jにエンコード
def self.encode_windows31j(str)
str.gsub!(REPLACE_KEYS, CONVERSIONS)
str.encode('Windows-31J')
end
private
CONVERSIONS = {
"\u301c" => "\uff5e", # wave-dash
"\u2212" => "\uff0d", # full-width minus
"\u00a2" => "\uffe0", # cent sign
"\u00a3" => "\uffe1", # pound sign
"\u00ac" => "\uffe2", # not sign
"\u2014" => "\u2015", # full-width dash
"\u2016" => "\u2225" # double vertical line
}
REPLACE_KEYS = /[#{CONVERSIONS.keys.join}]/
end