module JapaneseCharReal
Constants
- VERSION
Public Class Methods
convert(str, encode: :ujis_to_utf8)
click to toggle source
# File lib/japanese_char_real.rb, line 38 def convert(str, encode: :ujis_to_utf8) return str if str.ascii_only? case encode when :ujis_to_utf8 unless str.encoding.name == 'UTF-8' str.encode!(Encoding::UTF_8, fallback: -> c { self.utf8_failure[c.unpack('H*').first] || '?' }) end str.split('').map { |c| self.gaiji_to_utf8[c.unpack('H*').first] || c }.join('') when :utf8_to_ujis end end
gaiji_to_utf8()
click to toggle source
# File lib/japanese_char_real.rb, line 31 def gaiji_to_utf8 { 'ee8b93' => '髙', 'ee878c' => '﨑' } end
utf8_failure()
click to toggle source
# File lib/japanese_char_real.rb, line 5 def utf8_failure { '8ff3a1' => 'ⅰ', '8ff3a2' => 'ⅱ', '8ff3a3' => 'ⅲ', '8ff3a4' => 'ⅳ', '8ff3a5' => 'ⅴ', '8ff3a5' => 'ⅵ', '8ff3a7' => 'ⅶ', '8ff3a8' => 'ⅷ', '8ff3a9' => 'ⅸ', '8ff3aa' => 'ⅹ', '8ff3ab' => 'Ⅰ', '8ff3ac' => 'Ⅱ', '8ff3ad' => 'Ⅲ', '8ff3ae' => 'Ⅳ', '8ff3af' => 'Ⅴ', '8ff3b0' => 'Ⅵ', '8ff3b1' => 'Ⅶ', '8ff3b2' => 'Ⅷ', '8ff3b3' => 'Ⅸ', '8ff3b4' => 'Ⅹ', '8ff3b7' => '㈱' } end