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
gem "unicode-numeric_value"
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
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")
- unicode-x: more Unicode related micro libraries
- Copyright (C) 2016-2024 Jan Lelis https://janlelis.com. Released under the MIT license.
- Unicode data: https://www.unicode.org/copyright.html#Exhibit1