Skip to content

janlelis/unicode-numeric_value

Repository files navigation

Unicode::NumericValue [version] [ci]

Convert a Unicode character into its numeric value.

Unicode version: 16.0.0 (September 2024)

Supported Rubies: 3.3, 3.2, 3.1, 3.0

Old Rubies that might still work: 2.7, 2.6, 2.5, 2.4, 2.3, 2.X

Gemfile

gem "unicode-numeric_value"

Usage

Can return Integer, Rational or nil:

require "unicode/numeric_value"

Unicode::NumericValue.of("1") # => 1
Unicode::NumericValue.of("Ⅷ") # => 8
Unicode::NumericValue.of("⓳") # => 19
Unicode::NumericValue.of("¾") # => (3/4)
Unicode::NumericValue.of("༳") # => (-1/2)
Unicode::NumericValue.of("𑿀") # => (1/320)
Unicode::NumericValue.of("𖭡") # => 1000000000000
Unicode::NumericValue.of("五") # => 5
Unicode::NumericValue.of("𜳷") # => 7
Unicode::NumericValue.of("A") # => nil

All Numeric Values

See a list of all numbers in Unicode: character.construction/numbers

Generated with:

require "unicode/numeric_value"
require "unicode/name" # https://github.com/janlelis/unicode-name

puts "Codepoint | Character | Numeric Value | Name\n" \
     "----------|-----------|---------------|-----\n" +
    Unicode::NumericValue.chars.map{ |char|
      [
        format("U+%.4X", char.unpack("U")[0]).rjust(9),
        char.rjust(9),
        Unicode::NumericValue.of(char).inspect.rjust(13),
        Unicode::Name.of(char)
      ].join(" | ")
    }.join("\n")

Also See

  • unicode-x: more Unicode related micro libraries

MIT License