unicode-tools

Encode any Unicode character into 17 formats (Unicode, HTML, CSS, JavaScript, Python, Java, Go, Ruby, Rust, C/C++, URL, UTF-8/16/32), look up full Unicode properties, resolve 92 HTML entities, and search characters by name. Use when working with character encoding, Unicode lookup, or HTML entities.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "unicode-tools" with this command: npx skills add fyipedia/unicodefyi/fyipedia-unicodefyi-unicode-tools

UnicodeFYI — Unicode Tools for AI Agents

Pure Python Unicode character toolkit. Compute 17 encoding representations, look up full Unicode properties (name, category, block, script), resolve 92 HTML entities, and search characters by name — all with zero dependencies (optional fonttools for block/script info).

Install: pip install unicodefyi · Web: unicodefyi.com · API: REST API · npm: npm install unicodefyi

When to Use

  • User asks to encode a character in multiple programming languages (Python, JavaScript, Java, Go, Ruby, Rust, C/C++)
  • User needs Unicode properties for a character (name, block, script, category, bidirectionality)
  • User wants to look up or reverse-lookup an HTML entity
  • User needs UTF-8, UTF-16, or UTF-32 byte representation
  • User asks to search for Unicode characters by name (arrows, check marks, math symbols)
  • User needs to convert between codepoint and character

Tools

get_encodings(char) -> EncodingInfo

Compute 17 encoding representations for any single character.

from unicodefyi import get_encodings

enc = get_encodings("✓")
enc.unicode        # 'U+2713'
enc.decimal        # '10003'
enc.html_decimal   # '✓'
enc.html_hex       # '✓'
enc.html_entity    # '✓'
enc.css            # '\2713'
enc.javascript     # '\u{2713}'
enc.python         # '\u2713'
enc.java           # '\u2713'
enc.go             # '\u2713'
enc.ruby           # '\u{2713}'
enc.rust           # '\u{2713}'
enc.c_cpp          # '\u2713'
enc.url_encoded    # '%E2%9C%93'
enc.utf8_bytes     # 'e2 9c 93'
enc.utf16be_bytes  # '27 13'
enc.utf32be_bytes  # '00 00 27 13'

get_char_info(codepoint) -> CharInfo | None

Get full Unicode properties and all encodings from a codepoint integer.

from unicodefyi import get_char_info

info = get_char_info(0x2713)
info.name           # 'CHECK MARK'
info.character      # '✓'
info.codepoint      # 10003
info.category       # 'So'
info.category_name  # 'Other Symbol'
info.block          # 'Dingbats'  (requires fonttools)
info.block_slug     # 'dingbats'
info.script         # 'Zyyy'  (requires fonttools)
info.script_slug    # 'common'
info.bidirectional  # 'ON'
info.mirrored       # False
info.encodings      # EncodingInfo (all 17 formats)

search(query, limit=50) -> list[CharInfo]

Search Unicode characters by name (case-insensitive substring match).

from unicodefyi import search

results = search("arrow")
for r in results[:5]:
    print(f"{r.character} U+{r.codepoint:04X} {r.name}")
# ← U+2190 LEFTWARDS ARROW
# ↑ U+2191 UPWARDS ARROW
# → U+2192 RIGHTWARDS ARROW
# ↓ U+2193 DOWNWARDS ARROW
# ↔ U+2194 LEFT RIGHT ARROW

lookup_html_entity(entity) -> str | None

Resolve an HTML entity string to its character. Supports 92 named entities.

from unicodefyi import lookup_html_entity

lookup_html_entity("✓")   # '✓'
lookup_html_entity("✗")   # '✗'
lookup_html_entity("—")   # '—'
lookup_html_entity("…")  # '…'
lookup_html_entity("•")    # '•'

get_category_name(category_code) -> str

Get the full name for a Unicode general category code.

from unicodefyi import get_category_name

get_category_name("Sm")  # 'Math Symbol'
get_category_name("Cc")  # 'Control'
get_category_name("Cn")  # 'Unassigned'

REST API (No Auth Required)

curl https://unicodefyi.com/api/character/2713/
curl https://unicodefyi.com/api/encode/✓/
curl https://unicodefyi.com/api/search/?q=check+mark
curl https://unicodefyi.com/api/block/dingbats/
curl https://unicodefyi.com/api/random/

Full spec: OpenAPI 3.1.0

17 Encoding Formats

FormatExample ()Use Case
UnicodeU+2713Standard reference
Decimal10003Numeric codepoint
HTML Decimal✓HTML pages
HTML Hex✓HTML pages
HTML Entity✓Named HTML entity
CSS\2713content property
JavaScript\u{2713}ES6+ string literals
Python\u2713String literals
Java\u2713String literals
Go\u2713String literals
Ruby\u{2713}String literals
Rust\u{2713}String/char literals
C/C++\u2713String literals
URL%E2%9C%93URLs, query strings
UTF-8e2 9c 93Byte-level encoding
UTF-16 BE27 13Windows/Java internals
UTF-32 BE00 00 27 13Fixed-width encoding

Common Unicode Blocks

BlockRangeExamples
Basic LatinU+0020–U+007FA, z, @, ~
General PunctuationU+2000–U+206F—, …, ‰
Currency SymbolsU+20A0–U+20CF€, £, ¥, ₹
ArrowsU+2190–U+21FF←, →, ↑, ↓
Mathematical OperatorsU+2200–U+22FF∀, ∃, ∞, ≠
Geometric ShapesU+25A0–U+25FF■, ●, ▲, ◆
Miscellaneous SymbolsU+2600–U+26FF☀, ★, ♠, ♥
DingbatsU+2700–U+27BF✓, ✗, ✂, ✈

Demo

UnicodeFYI demo

Creative FYI Family

Part of the FYIPedia ecosystem: ColorFYI, EmojiFYI, SymbolFYI, FontFYI.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

font-tools

No summary provided by upstream source.

Repository SourceNeeds Review
General

color-tools

No summary provided by upstream source.

Repository SourceNeeds Review
General

emoji-tools

No summary provided by upstream source.

Repository SourceNeeds Review
General

symbol-tools

No summary provided by upstream source.

Repository SourceNeeds Review