Unicode::SequenceName [version] [ci]

Returns the name of a Unicode codepoint sequence (= more than one codepoint involved), if one exists.

Unicode version: 16.0.0 (September 2024)

Emoji version: 16.0 (September 2024)

IVD version: 2022-09-13 (September 2022)

Supported Rubies: 3.3, 3.2, 3.1, 3.0

Old Rubies which might still work: 2.X

Usage

require "unicode/sequence_name"

Unicode::SequenceName.of "‼︎" # => "DOUBLE EXCLAMATION MARK (text style)"
Unicode::SequenceName.of "㓟︀" # => "CJK COMPATIBILITY IDEOGRAPH-2F81F"
Unicode::SequenceName.of "င︀" # => "MYANMAR LETTER NGA (dotted form)"
Unicode::SequenceName.of "நி" # => "TAMIL SYLLABLE NI"
Unicode::SequenceName.of "🇺🇳" # => "Flag: UNITED NATIONS"
Unicode::SequenceName.of "🏴󠁧󠁢󠁳󠁣󠁴󠁿" # => "SCOTLAND"
Unicode::SequenceName.of "🧑‍🦱" # => "PERSON: CURLY HAIR"
Unicode::SequenceName.of "👨‍🍼" # => "MAN FEEDING BABY"
Unicode::SequenceName.of "❤️‍🔥" # => "HEART ON FIRE"
Unicode::SequenceName.of "🫱🏻‍🫲🏾" # => "HANDSHAKE: LIGHT SKIN TONE, MEDIUM-DARK SKIN TONE"
Unicode::SequenceName.of "🐦‍⬛" # => "BLACK BIRD"
Unicode::SequenceName.of "🙂‍↔️" # => "HEAD SHAKING HORIZONTALLY"
Unicode::SequenceName.of "‘︁" # => "LEFT SINGLE QUOTATION MARK (right-justified fullwidth form)"

Names for singular codepoints are not included, but you can use unicode-name for that purpose. This is how you could use both libraries together to get the most relevant name of a character:

name = Unicode::SequenceName.of(char) || Unicode::Name.readable(char)

Also See

  • uniscribe - cli utility that makes use of unicode_sequence-name
  • unicode-x - more Unicode related micro libraries
  • unicode-name.js - JavaScript implementation of name and sequence_name

MIT License