Free Unicode Character Lookup
A Unicode character lookup tool lets you search for any Unicode symbol by name, category, or code point. Search below to find, preview, and copy any Unicode character instantly.
What Is Unicode?
Unicode is the universal character encoding standard that assigns a unique numeric code point to every character in every writing system. Code points are written as U+ followed by hexadecimal digits: U+0041 is ‘A’, U+00E9 is ‘é’, U+2764 is ‘❤’, U+1F600 is ‘😀’. Unicode covers Latin, Cyrillic, Arabic, Chinese, Japanese, Korean, Devanagari, emoji, mathematical symbols, musical notation, and many more scripts — over 149,000 characters total.
You would use Unicode lookup when inserting special characters not on your keyboard, finding the correct arrow or symbol for a design, looking up code points for internationalization work, debugging character encoding issues, and finding HTML entities for web development.
Unicode defines characters and their code points, but the bytes stored in a file depend on the encoding. UTF-8, the dominant encoding on the web, uses 1–4 bytes per character and is backward-compatible with ASCII. Understanding this distinction matters when working with file sizes, database column lengths, and string manipulation.
Code Examples for Working with Unicode
JavaScript
// Get code point of a character
console.log('A'.codePointAt(0)); // 65
console.log('❤'.codePointAt(0).toString(16)); // 2764
console.log('😀'.codePointAt(0).toString(16)); // 1f600
// Create character from code point
console.log(String.fromCodePoint(0x2764)); // ❤
console.log(String.fromCodePoint(0x1F600)); // 😀
// Unicode escapes in strings
const arrow = '\u2192'; // →
const check = '\u2713'; // ✓
const cross = '\u2717'; // ✗
console.log('Pass ' + check + ' / Fail ' + cross + ' / Next ' + arrow);
// Iterate correctly over emoji and non-BMP chars
const text = 'Hello 😀 World';
for (const char of text) {
const cp = char.codePointAt(0).toString(16).toUpperCase().padStart(4, '0');
console.log(char + ' = U+' + cp);
}
// Detect emoji range
function isEmoji(char) {
const cp = char.codePointAt(0);
return (cp >= 0x1F600 && cp <= 0x1F64F) ||
(cp >= 0x1F300 && cp <= 0x1F5FF) ||
(cp >= 0x1F680 && cp <= 0x1F6FF);
}Python
import unicodedata
# Get character info
char = '❤'
print(f"Character: {char}")
print(f"Name: {unicodedata.name(char)}")
print(f"Code point: U+{ord(char):04X}")
# Character: ❤ Name: HEAVY BLACK HEART Code point: U+2764
# Look up character by name
arrow = unicodedata.lookup('RIGHTWARDS ARROW')
print(f"Arrow: {arrow} (U+{ord(arrow):04X})")
# Arrow: → (U+2192)
# Search by partial name
def search_unicode(query, limit=5):
results = []
for cp in range(0x10FFFF):
try:
name = unicodedata.name(chr(cp))
if query.upper() in name:
results.append((chr(cp), f'U+{cp:04X}', name))
if len(results) >= limit:
break
except ValueError:
continue
return results
for char, code, name in search_unicode('check mark'):
print(f" {char} {code} {name}")
# ✓ U+2713 CHECK MARK
# ✔ U+2714 HEAVY CHECK MARKGo
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
// Character info
char := '❤'
fmt.Printf("Character: %c\n", char)
fmt.Printf("Code point: U+%04X\n", char)
fmt.Printf("UTF-8 bytes: %d\n", utf8.RuneLen(char))
// Create from code point
arrow := rune(0x2192)
check := rune(0x2713)
fmt.Printf("Arrow: %c, Check: %c\n", arrow, check)
// Iterate over string (handles multi-byte runes)
text := "Hello 😀"
for _, r := range text {
fmt.Printf("%c = U+%04X\n", r, r)
}
}How to Use Unicode Lookup
1. Search or browse. Type a character name in the search box (e.g., "check mark", "arrow", "heart") or click a category tab to browse by type.
2. Find your character. Each result card shows the character in large format, its official Unicode name, code point (U+XXXX), HTML entity, and CSS content value.
3. Click to copy. Click any character card to copy the character to your clipboard. A toast notification confirms the copy.
4. Use the code. Use the code point, HTML entity, or CSS content value in your code. Each format works in different contexts: HTML entities in web pages, CSS values in stylesheets, and code points in programming languages.
A Developer's Guide to Unicode Characters
Unicode is the backbone of modern text handling. Before Unicode, dozens of competing character encoding standards (ASCII, ISO-8859, Windows-1252, Shift-JIS) made it nearly impossible to exchange text reliably between different systems and languages. Unicode solved this by assigning a unique number to every character in every writing system, creating a single universal standard that all modern software supports.
Encoding vs. characters. Unicode defines characters and their code points, but the actual bytes stored in a file depend on the encoding used. UTF-8, the most popular encoding on the web, uses one to four bytes per character. ASCII characters (U+0000 to U+007F) use a single byte, making UTF-8 backward-compatible with ASCII. Characters like arrows, math symbols, and currency signs use two or three bytes. Understanding this distinction matters when working with file sizes, database column lengths, and string manipulation in code.
Using symbols in web development. Web developers have three main ways to insert special characters. Direct Unicode characters work in any UTF-8 encoded HTML file. HTML entities (♥ or ♥) are useful when you want the character to be readable in the source code. CSS content values (content: "\2665") let you add decorative characters through pseudo-elements without cluttering the HTML. Each approach has trade-offs in readability, maintainability, and accessibility.
Accessibility considerations. When using Unicode symbols as functional icons (like a checkmark for "complete" or an X for "delete"), always provide an accessible label via aria-label or visually hidden text. Screen readers may not announce Unicode symbols consistently, and some symbols have ambiguous pronunciations. For decorative symbols, use aria-hidden="true" to prevent screen readers from announcing them at all.
Font coverage. Not every font includes glyphs for all Unicode characters. System fonts on modern operating systems cover the most common symbols, but box drawing characters, mathematical operators, and currency signs may require specific fonts. When using uncommon characters on the web, test across platforms or specify fallback fonts in your CSS font stack to ensure consistent rendering.
Frequently Asked Questions About Unicode Lookup
What is Unicode?
Unicode is the universal character encoding standard that assigns a unique code point to every character across all writing systems and symbol sets. It includes over 149,000 characters covering 161 modern and historic scripts, plus emoji and technical symbols. Unicode ensures that text looks the same regardless of the platform, device, or program being used.
What is a code point (U+XXXX)?
A code point is the unique hexadecimal identifier assigned to each Unicode character. For example, the check mark is U+2713. The "U+" prefix indicates a Unicode code point. You can use code points in HTML (✓), CSS (content: "\2713"), JavaScript ("\u2713"), and most programming languages.
How do I use the HTML entity?
HTML entities let you insert special characters in HTML documents. Named entities like ♥ use memorable names. Numeric entities like ✓ use the decimal code point. Both produce the same character in the browser. Use them when your HTML file encoding might not support the character directly.
How do I use the CSS content value?
The CSS content property with Unicode escape sequences lets you insert characters in pseudo-elements (::before, ::after). For example: .icon::before { content: "\2714"; } displays a heavy check mark. This is useful for decorative icons without adding extra HTML markup.
Why do some characters look different across devices?
Unicode defines what a character means, not how it looks. Each operating system, browser, and font renders characters using its own glyph designs. Emoji are especially variable: Apple, Google, Microsoft, and Samsung all have distinct emoji art. Box drawing and math symbols are more consistent because fonts follow stricter conventions for these.
Can I copy and paste these characters anywhere?
Yes. Click any character card to copy it to your clipboard. You can paste Unicode characters into most modern applications including text editors, word processors, social media, messaging apps, spreadsheets, and code editors. However, the character will only display correctly if the recipient's system has a font that includes that glyph.
How many characters does this tool include?
This tool includes approximately 200 of the most commonly used Unicode characters across seven categories: Arrows, Math, Currency, Checkmarks, Stars & Shapes, Box Drawing, and Punctuation. These cover the vast majority of symbols that developers, designers, and writers need in everyday work.
How do I find a Unicode character by name?
Type a descriptive word in the search box — for example, 'arrow', 'heart', or 'check'. The tool filters results as you type, showing characters whose official Unicode names match your query. You can also browse by category tab.
How do I type special characters not on my keyboard?
Search for the character in the Unicode Lookup tool and copy it by clicking the result card. Alternatively, use the Alt code on Windows, Character Viewer on Mac (Edit > Emoji & Symbols), or Ctrl+Shift+U followed by the hex code point on Linux.
What is the difference between Unicode and UTF-8?
Unicode is the standard that assigns a unique number (code point) to every character. UTF-8 is an encoding that defines how those numbers are stored as bytes on disk or in memory. UTF-8 uses 1–4 bytes per character and is backward-compatible with ASCII. It is the dominant text encoding on the web.
Related Free Online Tools
Look up Unicode characters here, then explore our other text tools.