Class: E4U::Encode::Softbank::Unicode

Inherits:
Object
  • Object
show all
Defined in:
lib/e4u/encode/softbank/unicode.rb,
lib/e4u/encode/softbank/unicode/utf8.rb,
lib/e4u/encode/softbank/unicode/cp932.rb,
lib/e4u/encode/softbank/unicode/google_unicode.rb

Constant Summary collapse

UTF8 =
E4U::Encode::Softbank::Utf8::SOFTBANK_UNICODE.invert.freeze
UTF8_REGEXP =
Regexp.new("&#x((?i:#{UTF8.keys.join('|')}));").freeze
CP932 =
E4U::Encode::Softbank::Cp932::SOFTBANK_UNICODE.invert.freeze
CP932_REGEXP =
Regexp.new("&#x((?i:#{CP932.keys.join('|')}));").freeze
GOOGLE_UNICODE =
{
  '' => '󾆛'.freeze,
  '' => '󾆜'.freeze,
  '' => '󾠣'.freeze,
  '' => '󾆝'.freeze,
  '' => '󾆞'.freeze,
  '' => '󾓏'.freeze,
  '' => '󾓍'.freeze,
  '' => '󾓯'.freeze,
  '' => '󾔣'.freeze,
  '' => '󾔥'.freeze,
  '' => '󾔨'.freeze,
  '' => '󾔸'.freeze,
  '' => '󾮖'.freeze,
  '' => '󾮗'.freeze,
  '' => '󾮘'.freeze,
  '' => '󾮓'.freeze,
  '' => '󾮔'.freeze,
  '' => '󾮕'.freeze,
  '' => '󾟕'.freeze,
  '' => '󾟒'.freeze,
  '' => '󾟓'.freeze,
  '' => '󾟑'.freeze,
  '' => '󾟚'.freeze,
  '' => '󾟔'.freeze,
  '' => '󾆽'.freeze,
  '' => '󾆾'.freeze,
  '' => '󾟤'.freeze,
  '' => '󾟪'.freeze,
  '' => '󾟩'.freeze,
  '' => '󾟟'.freeze,
  '' => '󾟣'.freeze,
  '' => '󾬉'.freeze,
  '' => '󾬄'.freeze,
  '' => '󾬌'.freeze,
  '' => '󾬎'.freeze,
  '' => '󾀞'.freeze,
  '' => '󾀟'.freeze,
  '' => '󾀠'.freeze,
  '' => '󾀡'.freeze,
  '' => '󾀢'.freeze,
  '' => '󾀣'.freeze,
  '' => '󾀤'.freeze,
  '' => '󾀥'.freeze,
  '' => '󾀦'.freeze,
  '' => '󾀧'.freeze,
  '' => '󾀨'.freeze,
  '' => '󾀩'.freeze,
  '' => '󾁀'.freeze,
  '' => '󾓒'.freeze,
  '' => '󾁁'.freeze,
  '' => '󾔒'.freeze,
  '' => '󾠥'.freeze,
  '' => '󾠦'.freeze,
  '' => '󾒰'.freeze,
  '' => '󾒻'.freeze,
  '' => '󾒲'.freeze,
  '' => '󾟬'.freeze,
  '' => '󾟵'.freeze,
  '' => '󾓃'.freeze,
  '' => '󾠀'.freeze,
  '' => '󾠁'.freeze,
  '' => '󾠓'.freeze,
  '' => '󾮂'.freeze,
  '' => '󾠕'.freeze,
  '' => '󾠖'.freeze,
  '' => '󾠘'.freeze,
  '' => '󾦀'.freeze,
  '' => '󾦂'.freeze,
  '' => '󾦁'.freeze,
  '' => '󾥢'.freeze,
  '' => '󾦃'.freeze,
  '' => '󾀃'.freeze,
  '' => '󾀁'.freeze,
  '' => '󾀀'.freeze,
  '' => '󾀏'.freeze,
  '' => '󾀂'.freeze,
  '' => '󾀔'.freeze,
  '' => '󾀉'.freeze,
  '' => '󾆯'.freeze,
  '' => '󾆸'.freeze,
  '' => '󾇀'.freeze,
  '' => '󾇁'.freeze,
  '' => '󾆷'.freeze,
  '' => '󾇂'.freeze,
  '' => '󾇃'.freeze,
  '' => '󾆼'.freeze,
  '' => '󾌵'.freeze,
  '' => '󾌰'.freeze,
  '' => '󾌣'.freeze,
  '' => '󾌠'.freeze,
  '' => '󾓴'.freeze,
  '' => '󾔭'.freeze,
  '' => '󾔮'.freeze,
  '' => '󾔫'.freeze,
  '' => '󾠤'.freeze,
  '' => '󾔦'.freeze,
  '' => '󾌩'.freeze,
  '' => '󾌧'.freeze,
  '' => '󾍁'.freeze,
  '' => '󾍄'.freeze,
  '' => '󾇄'.freeze,
  '' => '󾇅'.freeze,
  '' => '󾆿'.freeze,
  '' => '󾆰'.freeze,
  '' => '󾟭'.freeze,
  '' => '󾓑'.freeze,
  '' => '󾭖'.freeze,
  '' => '󾀼'.freeze,
  '' => '󾠧'.freeze,
  '' => '󾔐'.freeze,
  '' => '󾓵'.freeze,
  '' => '󾮅'.freeze,
  '' => '󾟙'.freeze,
  '' => '󾓊'.freeze,
  '' => '󾔕'.freeze,
  '' => '󾀿'.freeze,
  '' => '󾁂'.freeze,
  '' => '󾆲'.freeze,
  '' => '󾆮'.freeze,
  '' => '󾆳'.freeze,
  '' => '󾓶'.freeze,
  '' => '󾔻'.freeze,
  '' => '󾔷'.freeze,
  '' => '󾥠'.freeze,
  '' => '󾒼'.freeze,
  '' => '󾟻'.freeze,
  '' => '󾟺'.freeze,
  '' => '󾟽'.freeze,
  '' => '󾠇'.freeze,
  '' => '󾠝'.freeze,
  '' => '󾠞'.freeze,
  '' => '󾠟'.freeze,
  '' => '󾠠'.freeze,
  '' => '󾠜'.freeze,
  '' => '󾆱'.freeze,
  '' => '󾠛'.freeze,
  '' => '󾠋'.freeze,
  '' => '󾬲'.freeze,
  '' => '󾓝'.freeze,
  '' => '󾠌'.freeze,
  '' => '󾟛'.freeze,
  '' => '󾟗'.freeze,
  '' => '󾠍'.freeze,
  '' => '󾟜'.freeze,
  '' => '󾟮'.freeze,
  '' => '󾟫'.freeze,
  '' => '󾟸'.freeze,
  '' => '󾬳'.freeze,
  '' => '󾬴'.freeze,
  '' => '󾬵'.freeze,
  '' => '󾔉'.freeze,
  '' => '󾭙'.freeze,
  '' => '󾀄'.freeze,
  '' => '󾓖'.freeze,
  '' => '󾔅'.freeze,
  '' => '󾔇'.freeze,
  '' => '󾠡'.freeze,
  '' => '󾔯'.freeze,
  '' => '󾔔'.freeze,
  '' => '󾮆'.freeze,
  '' => '󾮇'.freeze,
  '' => '󾀋'.freeze,
  '' => '󾥥'.freeze,
  '' => '󾕆'.freeze,
  '' => '󾓞'.freeze,
  '' => '󾓟'.freeze,
  '' => '󾔱'.freeze,
  '' => '󾭞'.freeze,
  '' => '󾒵'.freeze,
  '' => '󾟷'.freeze,
  '' => '󾟶'.freeze,
  '' => '󾟧'.freeze,
  '' => '󾔆'.freeze,
  '' => '󾆡'.freeze,
  '' => '󾒳'.freeze,
  '' => '󾒶'.freeze,
  '' => '󾒴'.freeze,
  '' => '󾒹'.freeze,
  '' => '󾒺'.freeze,
  '' => '󾒷'.freeze,
  '' => '󾟦'.freeze,
  '' => '󾟯'.freeze,
  '' => '󾟰'.freeze,
  '' => '󾟨'.freeze,
  '' => '󾬤'.freeze,
  '' => '󾬙'.freeze,
  '' => '󾭡'.freeze,
  '' => '󾭢'.freeze,
  '' => '󾬥'.freeze,
  '' => '󾬟'.freeze,
  '' => '󾁄'.freeze,
  '' => '󾬠'.freeze,
  '' => '󾠸'.freeze,
  '' => '󾬚'.freeze,
  '' => '󾬜'.freeze,
  '' => '󾬛'.freeze,
  '' => '󾬝'.freeze,
  '' => '󾠬'.freeze,
  '' => '󾠫'.freeze,
  '' => '󾬶'.freeze,
  '' => '󾬷'.freeze,
  '' => '󾬸'.freeze,
  '' => '󾬹'.freeze,
  '' => '󾬺'.freeze,
  '' => '󾬻'.freeze,
  '' => '󾬼'.freeze,
  '' => '󾭣'.freeze,
  '' => '&#x>FEB64;'.freeze,
  '' => '󾭧'.freeze,
  '' => '󾠮'.freeze,
  '' => '󾠯'.freeze,
  '' => '󾠰'.freeze,
  '' => '󾠱'.freeze,
  '' => '󾠲'.freeze,
  '' => '󾠳'.freeze,
  '' => '󾠴'.freeze,
  '' => '󾠵'.freeze,
  '' => '󾠶'.freeze,
  '' => '󾠷'.freeze,
  '' => '󾬽'.freeze,
  '' => '󾬾'.freeze,
  '' => '󾬿'.freeze,
  '' => '󾮁'.freeze,
  '' => '󾬱'.freeze,
  '' => '󾬯'.freeze,
  '' => '󾭀'.freeze,
  '' => '󾭁'.freeze,
  '' => '󾮙'.freeze,
  '' => '󾮚'.freeze,
  '' => '󾮛'.freeze,
  '' => '󾮜'.freeze,
  '' => '󾫸'.freeze,
  '' => '󾫹'.freeze,
  '' => '󾫺'.freeze,
  '' => '󾫻'.freeze,
  '' => '󾫰'.freeze,
  '' => '󾫲'.freeze,
  '' => '󾫱'.freeze,
  '' => '󾫳'.freeze,
  '' => '󾫼'.freeze,
  '' => '󾫽'.freeze,
  '' => '󾫾'.freeze,
  '' => '󾫿'.freeze,
  '' => '󾓸'.freeze,
  '' => '󾀫'.freeze,
  '' => '󾀬'.freeze,
  '' => '󾀭'.freeze,
  '' => '󾀮'.freeze,
  '' => '󾀯'.freeze,
  '' => '󾀰'.freeze,
  '' => '󾀱'.freeze,
  '' => '󾀲'.freeze,
  '' => '󾀳'.freeze,
  '' => '󾀴'.freeze,
  '' => '󾀵'.freeze,
  '' => '󾀶'.freeze,
  '' => '󾀷'.freeze,
  '' => '󾭂'.freeze,
  '' => '󾬧'.freeze,
  '' => '󾬩'.freeze,
  '' => '󾬭'.freeze,
  '' => '󾠹'.freeze,
  '' => '󾠺'.freeze,
  '' => '󾬣'.freeze,
  '' => '󾆴'.freeze,
  '' => '󾹷'.freeze,
  '' => '󾹸'.freeze,
  '' => '󾹹'.freeze,
  '' => '󾹺'.freeze,
  '' => '󾹻'.freeze,
  '' => '󾹼'.freeze,
  '' => '󾹽'.freeze,
  '' => '󾔧'.freeze,
  '' => '󾓓'.freeze,
  '' => '󾁅'.freeze,
  '' => '󾀽'.freeze,
  '' => '󾁆'.freeze,
  '' => '󾠨'.freeze,
  '' => '󾁇'.freeze,
  '' => '󾁈'.freeze,
  '' => '󾔈'.freeze,
  '' => '󾠃'.freeze,
  '' => '󾦅'.freeze,
  '' => '󾦇'.freeze,
  '' => '󾭃'.freeze,
  '' => '󾬞'.freeze,
  '' => '󾔊'.freeze,
  '' => '󾔖'.freeze,
  '' => '󾭘'.freeze,
  '' => '󾔗'.freeze,
  '' => '󾔾'.freeze,
  '' => '󾔏'.freeze,
  '' => '󾬫'.freeze,
  '' => '󾔼'.freeze,
  '' => '󾔰'.freeze,
  '' => '󾓔'.freeze,
  '' => '󾓕'.freeze,
  '' => '󾓗'.freeze,
  '' => '󾓘'.freeze,
  '' => '󾆕'.freeze,
  '' => '󾆖'.freeze,
  '' => '󾆗'.freeze,
  '' => '󾆘'.freeze,
  '' => '󾆙'.freeze,
  '' => '󾓙'.freeze,
  '' => '󾓚'.freeze,
  '' => '󾓰'.freeze,
  '' => '󾠈'.freeze,
  '' => '󾓲'.freeze,
  '' => '󾠔'.freeze,
  '' => '󾬍'.freeze,
  '' => '󾬑'.freeze,
  '' => '󾬒'.freeze,
  '' => '󾬓'.freeze,
  '' => '󾬔'.freeze,
  '' => '󾬕'.freeze,
  '' => '󾬖'.freeze,
  '' => '󾭠'.freeze,
  '' => '󾭨'.freeze,
  '' => '󾭝'.freeze,
  '' => '󾭛'.freeze,
  '' => '󾭄'.freeze,
  '' => '󾭅'.freeze,
  '' => '󾭗'.freeze,
  '' => '󾭩'.freeze,
  '' => '󾬊'.freeze,
  '' => '󾬋'.freeze,
  '' => '󾦄'.freeze,
  '' => '󾥤'.freeze,
  '' => '󾥦'.freeze,
  '' => '󾥧'.freeze,
  '' => '󾥨'.freeze,
  '' => '󾥩'.freeze,
  '' => '󾥪'.freeze,
  '' => '󾥫'.freeze,
  '' => '󾥣'.freeze,
  '' => '󾥬'.freeze,
  '' => '󾥡'.freeze,
  '' => '󾥭'.freeze,
  '' => '󾥮'.freeze,
  '' => '󾁑'.freeze,
  '' => '󾁒'.freeze,
  '' => '󾁓'.freeze,
  '' => '󾁔'.freeze,
  '' => '󾁕'.freeze,
  '' => '󾁖'.freeze,
  '' => '󾔑'.freeze,
  '' => '󾥯'.freeze,
  '' => '󾥰'.freeze,
  '' => '󾍅'.freeze,
  '' => '󾍃'.freeze,
  '' => '󾍀'.freeze,
  '' => '󾌳'.freeze,
  '' => '󾍇'.freeze,
  '' => '󾌼'.freeze,
  '' => '󾌿'.freeze,
  '' => '󾍂'.freeze,
  '' => '󾌪'.freeze,
  '' => '󾌾'.freeze,
  '' => '󾌻'.freeze,
  '' => '󾌮'.freeze,
  '' => '󾌯'.freeze,
  '' => '󾌦'.freeze,
  '' => '󾌥'.freeze,
  '' => '󾌢'.freeze,
  '' => '󾌺'.freeze,
  '' => '󾌴'.freeze,
  '' => '󾌹'.freeze,
  '' => '󾌶'.freeze,
  '' => '󾌸'.freeze,
  '' => '󾌱'.freeze,
  '' => '󾌽'.freeze,
  '' => '󾌭'.freeze,
  '' => '󾌬'.freeze,
  '' => '󾆐'.freeze,
  '' => '󾆒'.freeze,
  '' => '󾆑'.freeze,
  '' => '󾆓'.freeze,
  '' => '󾍛'.freeze,
  '' => '󾮝'.freeze,
  '' => '󾮞'.freeze,
  '' => '󾮟'.freeze,
  '' => '󾮠'.freeze,
  '' => '󾮡'.freeze,
  '' => '󾍑'.freeze,
  '' => '󾍒'.freeze,
  '' => '󾠩'.freeze,
  '' => '󾍓'.freeze,
  '' => '󾍘'.freeze,
  '' => '󾆠'.freeze,
  '' => '󾆢'.freeze,
  '' => '󾟖'.freeze,
  '' => '󾟝'.freeze,
  '' => '󾠎'.freeze,
  '' => '󾟞'.freeze,
  '' => '󾟥'.freeze,
  '' => '󾟱'.freeze,
  '' => '󾟲'.freeze,
  '' => '󾟳'.freeze,
  '' => '󾟴'.freeze,
  '' => '󾟾'.freeze,
  '' => '󾟠'.freeze,
  '' => '󾟢'.freeze,
  '' => '󾔘'.freeze,
  '' => '󾬗'.freeze,
  '' => '󾔙'.freeze,
  '' => '󾔚'.freeze,
  '' => '󾔛'.freeze,
  '' => '󾔜'.freeze,
  '' => '󾀇'.freeze,
  '' => '󾠪'.freeze,
  '' => '󾀸'.freeze,
  '' => '󾥱'.freeze,
  '' => '󾔝'.freeze,
  '' => '󾇆'.freeze,
  '' => '󾔞'.freeze,
  '' => '󾀅'.freeze,
  '' => '󾁉'.freeze,
  '' => '󾔟'.freeze,
  '' => '󾀗'.freeze,
  '' => '󾁃'.freeze,
  '' => '󾔓'.freeze,
  '' => '󾀊'.freeze,
  '' => '󾀌'.freeze,
  '' => '󾀈'.freeze,
  '' => '󾀍'.freeze,
  '' => '󾒸'.freeze,
  '' => '󾠄'.freeze,
  '' => '󾠅'.freeze,
  '' => '󾒽'.freeze,
  '' => '󾒾'.freeze,
  '' => '󾒿'.freeze,
  '' => '󾠂'.freeze,
  '' => '󾓀'.freeze,
  '' => '󾓄'.freeze,
  '' => '󾓅'.freeze,
  '' => '󾓥'.freeze,
  '' => '󾓦'.freeze,
  '' => '󾓧'.freeze,
  '' => '󾓨'.freeze,
  '' => '󾓩'.freeze,
  '' => '󾓪'.freeze,
  '' => '󾓫'.freeze,
  '' => '󾓬'.freeze,
  '' => '󾓭'.freeze,
  '' => '󾓮'.freeze,
  '' => '󾆤'.freeze,
  '' => '󾆥'.freeze,
  '' => '󾆦'.freeze,
  '' => '󾆧'.freeze,
  '' => '󾆨'.freeze,
  '' => '󾆩'.freeze,
  '' => '󾆪'.freeze,
  '' => '󾆫'.freeze,
  '' => '󾓆'.freeze,
  '' => '󾆵'.freeze,
  '' => '󾆶'.freeze,
  '' => '󾇇'.freeze,
  '' => '󾇈'.freeze,
  '' => '󾇉'.freeze,
  '' => '󾆺'.freeze,
  '' => '󾇊'.freeze,
  '' => '󾇋'.freeze,
  '' => '󾇌'.freeze,
  '' => '󾇍'.freeze,
  '' => '󾇎'.freeze,
  '' => '󾇏'.freeze,
  '' => '󾇐'.freeze,
  '' => '󾇑'.freeze,
  '' => '󾇒'.freeze,
  '' => '󾇓'.freeze,
  '' => '󾇔'.freeze,
  '' => '󾇕'.freeze,
  '' => '󾇖'.freeze,
  '' => '󾇗'.freeze,
  '' => '󾔋'.freeze,
  '' => '󾔌'.freeze,
  '' => '󾔍'.freeze,
  '' => '󾔎'.freeze,
  '' => '󾕓'.freeze,
  '' => '󾬪'.freeze,
  '' => '󾹰'.freeze,
  '' => '󾹱'.freeze,
  '' => '󾹲'.freeze,
  '' => '󾹳'.freeze,
  '' => '󾹴'.freeze,
  '' => '󾹵'.freeze,
  '' => '󾹶'.freeze,
}.freeze
GOOGLE_UNICODE_REGEXP =
Regexp.new(GOOGLE_UNICODE.keys.sort_by{ |k| -k.size }.map do |ncr|
  "(?:" + ncr.gsub(/&#x(....);/){ "&#x(?i:#{$1});" } + ")"
end.join('|')).freeze

Class Method Summary collapse

Class Method Details

.to_cp932(str) ⇒ Object



14
15
16
17
18
19
# File 'lib/e4u/encode/softbank/unicode.rb', line 14

def self.to_cp932 str
  puts "softbank_unicode_to_softbank_cp932" if $DEBUG
  str.gsub(CP932_REGEXP) do |matched|
    CP932[$1]
  end
end

.to_google_unicode(str) ⇒ Object



39
40
41
42
43
44
# File 'lib/e4u/encode/softbank/unicode.rb', line 39

def self.to_google_unicode str
  puts "softbank_unicode_to_google_unicode" if $DEBUG
  str.gsub(GOOGLE_UNICODE_REGEXP) do |matched|
    GOOGLE_UNICODE[matched]
  end
end

.to_utf8(str) ⇒ Object



32
33
34
35
36
37
# File 'lib/e4u/encode/softbank/unicode.rb', line 32

def self.to_utf8 str
  puts "softbank_unicode_to_softbank_utf8" if $DEBUG
  str.gsub(UTF8_REGEXP) do |matched|
    UTF8[$1]
  end
end

.to_webcode(str) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/e4u/encode/softbank/unicode.rb', line 21

def self.to_webcode str
  puts "softbank_unicode_to_softbank_cp932" if $DEBUG
  str.gsub(CP932_REGEXP) do |matched|
    code = $1.hex
    high = %w(G E F O P Q)[(code & 0x0700) >> 8]
    low  = (code & 0xFF) + 32
    webcode = "\x1B\x24" + high + low.chr + "\x0F"
    RUBY_VERSION < '1.9.1' ? webcode : webcode.force_encoding('CP932')
  end
end