def transliterate(string)
      string.unpack("U*")
            .map { |codepoint| approximations[codepoint] || codepoint }
            .flatten
            .pack("U*")
    end
def transliterate(string)
      string.unpack("U*")
            .map { |codepoint| approximations[codepoint] || codepoint }
            .flatten
            .pack("U*")
    end
Initializes a new +Transliterator::Base+ instance.

 Because +Transliterator::Base+ is a singleton, you can only get an
 instance of it by calling the +#instance+ class method on it:

     Transliterator::Base.new      # => NoMethodError: private method `new' called for Transliterator::Base:Class
     Transliterator::Base.instance # => #<Transliterator::Base:0x007f9b8c086e78>

 @return [Transliterator::Base] The +Transliterator::Base+ instance
 Transliterate a given string's UTF-8 characters to their ASCII equivalants.

     transliterator = Transliterator::Base.instance
     transliterator.transliterate "5 × 10 ÷ 2 ‐ 5 = 20" # => "5 x 10 / 2 - 5 = 20"

 @return [String] The transliterated string