https://github.com/janlelis/unicode-name
Unicode character names in Ruby
https://github.com/janlelis/unicode-name
names ruby unicode unicode-data
Last synced: 5 months ago
JSON representation
Unicode character names in Ruby
- Host: GitHub
- URL: https://github.com/janlelis/unicode-name
- Owner: janlelis
- License: mit
- Created: 2016-04-13T18:36:37.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2025-09-09T14:55:09.000Z (6 months ago)
- Last Synced: 2025-10-10T00:36:06.725Z (5 months ago)
- Topics: names, ruby, unicode, unicode-data
- Language: Ruby
- Homepage: https://character.construction/name
- Size: 4.14 MB
- Stars: 14
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: MIT-LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-starred - janlelis/unicode-name - Unicode character names in Ruby (ruby)
README
# Unicode::Name [![[version]](https://badge.fury.io/rb/unicode-name.svg)](https://badge.fury.io/rb/unicode-name) [![[ci]](https://github.com/janlelis/unicode-name/workflows/Test/badge.svg)](https://github.com/janlelis/unicode-name/actions?query=workflow%3ATest)
Return Unicode codepoint names, aliases, and labels.
Unicode version: **17.0.0** (September 2025)
## Usage
```ruby
require "unicode/name"
# Name
Unicode::Name.of "A" # => "LATIN CAPITAL LETTER A"
Unicode::Name.of "🚡" # => "AERIAL TRAMWAY"
Unicode::Name.of "丁" # => "CJK UNIFIED IDEOGRAPH-4E01"
Unicode::Name.of "한" # => "HANGUL SYLLABLE HAN"
# Unicode 17 (2025) example
Unicode::Name.of "" # => "TOLONG SIKI LETTER I"
# Aliases, by type
Unicode::Name.aliases "\t" # => {:control=>["CHARACTER TABULATION", "HORIZONTAL TABULATION"],
:abbreviation=>["HT", "TAB"]}
# Corrections (via .aliases[:correction], then name)
Unicode::Name.correct "A" # => "LATIN CAPITAL LETTER A"
Unicode::Name.correct "Ƣ" # => "LATIN CAPITAL LETTER GHA"
# Codepoint labels
Unicode::Name.label("\0") # => ""
Unicode::Name.label("\u{D800}") # => ""
Unicode::Name.label("\u{FFFFF}") # => ""
Unicode::Name.label("\u{10C50}") # => ""
# Best readable representation
Unicode::Name.readable("A") # => "LATIN CAPITAL LETTER A"
Unicode::Name.readable("\0") # => "NULL"
Unicode::Name.readable("\u{FFFFD}") # => ""
```
See [unicode-sequence_names](https://github.com/janlelis/unicode-sequence_name) for character names of more complex codepoint sequences. This is how you could use both libraries together to get the most relevant name of a character:
```ruby
name = Unicode::SequenceName.of(char) || Unicode::Name.readable(char)
```
See [unicode-x](https://github.com/janlelis/unicode-x) for more Unicode related micro libraries.
See [unicode-name.js](https://github.com/janlelis/unicode-name.js) for a JavaScript implementation of this gem.
## MIT License
- Copyright (C) 2016-2025 Jan Lelis . Released under the MIT license.
- Unicode data: https://www.unicode.org/copyright.html#Exhibit1