SymbolFYI

Private Use Area

Unicode Standard
Definisi

Ranges of Unicode code points (U+E000–U+F8FF, etc.) reserved for custom characters defined by font vendors or applications.

What Is the Private Use Area?

The Private Use Area (PUA) consists of ranges of Unicode code points that are permanently and intentionally left unassigned by the Unicode Standard. These code points will never be given an official Unicode character assignment, making them available for applications, organizations, and individuals to assign their own custom characters — on the condition that the meaning of those assignments is agreed upon by the parties exchanging the text.

PUA Ranges

Range Code Points Name
U+E000U+F8FF 6,400 BMP Private Use Area
U+F0000U+FFFFF 65,534 Supplementary Private Use Area-A (Plane 15)
U+100000U+10FFFD 65,534 Supplementary Private Use Area-B (Plane 16)

In total, the PUA offers 137,468 code points for private use.

Common Uses of the PUA

Corporate Logos and Icons

Companies often map proprietary icons to PUA code points for use in icon fonts. The most widely known example is the Apple logo (🍎), which Apple maps to U+F8FF in its own fonts — the last code point of the BMP PUA. This character renders as the Apple logo on macOS/iOS but displays as nothing or a question mark on other platforms.

Icon Fonts

Icon font libraries like Font Awesome (historically) and many others map their icons to PUA code points. This allows icons to be embedded in text flows and styled with CSS while avoiding conflicts with real text characters.

/* Font Awesome icon via PUA */
.icon-home::before {
  font-family: 'FontAwesome';
  content: '\f015';  /* U+F015 in PUA */
}

Historic and Minority Scripts

Before rare or historical scripts are assigned official Unicode code points (which can take years), scholars and publishers sometimes use PUA assignments as interim solutions. The CSUR (ConScript Unicode Registry) coordinates unofficial assignments for constructed languages like Klingon and Tengwar.

Proprietary Systems

Legacy software, databases, and specialized tools sometimes use PUA code points for control purposes, proprietary bullets, watermarks, or other application-specific markers.

Interoperability Warning

The fundamental limitation of PUA characters is that their meaning is not universally defined. A code point in the PUA that means "company logo" in one font means something entirely different in another font, or renders as a blank box (tofu) when no matching font is available.

# Check if a character is in the Private Use Area
def is_pua(char):
    cp = ord(char)
    return (
        0xE000 <= cp <= 0xF8FF or     # BMP PUA
        0xF0000 <= cp <= 0xFFFFF or   # PUA-A (Plane 15)
        0x100000 <= cp <= 0x10FFFD    # PUA-B (Plane 16)
    )

print(is_pua('\uE001'))    # True
print(is_pua('\uF8FF'))    # True (Apple logo code point)
print(is_pua('A'))          # False

import unicodedata
# PUA characters have category 'Co' (Other, Private Use)
print(unicodedata.category('\uE001'))  # 'Co'

Accessibility and PUA Fonts

Using PUA-based icon fonts raises accessibility concerns: screen readers encounter unknown code points and either skip them, read out the code point number, or produce garbled output. Modern practice favors SVG icons or SVG sprites over PUA icon fonts for this reason. If PUA icon fonts are used, aria-hidden="true" and role="img" with accessible labels should accompany all icon elements.

Simbol Terkait

Istilah Terkait

Alat Terkait

Panduan Terkait