Accéder au contenu principal
☀️ Summer Founder's Deal : licence à vie FontCreator à $49 (au lieu de $199). Offre limitée — se termine le 14 juillet. Profiter de l'offre →

FontCreator Tutorials

Add Characters & Assign Unicode Codepoints (PUA)

written by Erwin Denissen, published June 26, 2026

You'll need: FontCreator (Windows and macOS), a font project open, and a character you want to add — or a glyph you've already drawn that won't type yet.

To add characters to a font and have them work in real applications, you have to assign a Unicode codepoint to each one. A drawn outline alone is not enough: until the glyph is mapped to a codepoint, no application can reach it when the user presses a key or pastes a character. This font editor gives you two dialogs for the job — Insert Characters and Insert Glyphs — and both run the same way on Windows and macOS.

Glyph vs character vs codepoint vs glyph name

Four terms get used loosely, and the difference is exactly what trips people up:

  • Character — an abstract entry in the Unicode standard, such as LATIN SMALL LETTER A. It is not a picture; it is a meaning plus a number.
  • Codepoint — the number Unicode assigns to that character, written as U+0041 (capital A), U+20AC (euro sign), and so on.
  • Glyph — the actual drawn shape in your font. One character can be drawn by many glyphs (small caps, alternates), and one glyph can serve several characters.
  • Glyph name — a friendly label such as a, Aacute, or uniE000. Names drive FontCreator's automation (composites, OpenType feature generation) but are not what an application types with.

The bridge between a character and your drawn glyph is the codepoint mapping (the font's cmap table). When you map a glyph to U+0041, you are telling every application "when the user wants the letter A, draw this shape."

Note: A glyph with a shape but no codepoint is still useful — small caps, ligature parts, and component donors are reached through OpenType features or composites, not by typing. But a glyph meant to be typed directly must have a codepoint.

Why an unmapped glyph won't type

This is the single most common "my new character doesn't work" problem. You draw a beautiful shape, save, install the font, and nothing comes out when you press the key. The reason is always the same: the glyph carries no codepoint, so the application has no way to ask for it.

When an application receives a character it cannot find in the font, one of two things happens: another font is substituted to display it, or you get the missing-glyph box (.notdef). Either way, your shape is never shown — because nothing connects the keystroke to it.

Watch out: Designing the outline and assigning the codepoint are two separate acts in any font editor. FontCreator can do both at once (Insert Characters maps as it adds), but if you drew into an empty, unmapped slot you still have to give that glyph a codepoint before it will type.

Add characters with Insert Characters

Insert Characters adds glyphs with their character mappings and glyph names already set — the fastest route when you want real, standard Unicode characters.

  1. Make the Font panel (the font overview) active. Insert Characters is only available there, not inside the glyph editor.
  2. Choose Font → Insert Characters… — it's the first item in the Font menu.
  3. Pick a Unicode block from the combo box. Deselect the AZ button to sort blocks in numerical codepoint order instead of alphabetically.
  4. Find the character you want using any of these:

- Go to code-point — type a decimal value (e.g. 8364) or a hexadecimal value prefixed with $ or 0x (e.g. $20AC or 0x20AC) to jump to the euro sign. - Find by Character (Name) — type the character itself () or part of its Unicode name (euro). Press Find Next to step through further name matches.

  1. Click a character to preview it bottom-left. Double-click it (or click Add) to drop its codepoint into the selected list. Hold Shift and double-click to add a whole range at once.
  2. Click OK to add the characters to the current font.
FontCreator Insert Characters dialog showing a Unicode block, the Go to code-point and Find by Character fields, and selected codepoints listed at the bottom.

Tip: You can type codepoints straight into the "characters to add" field — separate single values with commas, use a hyphen for a range, or paste a list from a text file. Pasting 256-383 then clicking OK adds the entire Latin Extended-A block in one go.

Add glyphs by name (and build composites with formulas)

Insert Glyphs works by glyph name rather than by browsing characters. If a name matches a Unicode character, that character is inserted (codepoint and all); if it doesn't, you get a named, unmapped working glyph.

  1. With the Font panel active, choose Font → Insert Glyphs… (the second item in the Font menu).
  2. Type one or more glyph names. Press Ctrl + Space for the name-completion helper.
  3. To add a range, use one of the supported forms: a-z, uni2000-uni20FF, u2000-u20FF, $2000-$20FF, or 0x2000-0x20FF. (Open-ended descriptive ranges like elevencircled-twentycircled are not supported.)
  4. Click OK.

To generate a composite at the same time, add a formula: the new glyph name, an equals sign, then the member glyph names joined with plus signs — no spaces (a space is read as the start of another glyph name):

f_i=f+i
f_i_j=f+i+j

This adds f_i as a composite built from f and i.  and f_i_j as a composite built from f, i, and j. If a hyphen in a name is being misread as a range, either disable the Ranges option or wrap the whole entry in double quotation marks.

FontCreator Insert Glyphs dialog showing glyph names and an f_i_j=f+i+j composite formula in the By Name field.

Note: Composite formulas only place the members at their default positions. For accents and marks you'll want anchor-based positioning — see Add Accents with Anchors & Complete Composites.

When to use the Private Use Area (PUA)

The Private Use Area is a block of codepoints Unicode deliberately leaves undefined so that fonts can assign their own meanings: U+E000–U+F8FF in the Basic Multilingual Plane (6,400 codepoints from decimal 57344 to 63743). Use it for shapes that have no standard Unicode character — icon sets, logos, ornaments, custom symbols.

To add PUA slots, open Insert Characters and type a range such as $E000-$E1FF in the codepoint field; FontCreator adds those slots with names like uniE000, uniE001, and so on.

Watch out — PUA portability and accessibility caveats:

  • No portable meaning. A PUA codepoint means whatever your font says it means. Open the text in another font and you'll get that font's shape — or nothing.
  • Not accessible. Screen readers, search, copy-paste into a different document, and language tools have no idea what a PUA character is. The text is effectively opaque.
  • Use a real codepoint whenever one exists. If Unicode already encodes your character, map it there. Reserve the PUA for genuinely private symbols.

Tip: If you only need a shape for a ligature, alternate, or component, you often don't need a codepoint at all — give the glyph a name and reach it through an OpenType feature or composite instead of burning a PUA slot.

The 65,535-glyph ceiling

A single font can contain at most 65,535 glyphs. That covers an enormous character set, but it is a hard ceiling — large CJK or pan-Unicode projects can approach it, especially once you add alternates, small caps, and composite parts. If you hit the limit, split the project into multiple fonts (for example by script) rather than trying to cram everything into one file.

Troubleshooting

SymptomLikely causeFix
New glyph won't type in any appGlyph has no Unicode codepointMap it via Insert Characters, or give it a name matching a Unicode character
Character shows in another font instead of yoursThe codepoint isn't in your fontAdd the character so your font owns that codepoint
Custom icon types fine for you, breaks elsewhereIt lives in the PUA (no portable meaning)Expect this; PUA shapes only work where your font is applied
Formula made two glyphs instead of a compositeA space in the formula split itRemove all spaces: f_i=f+i, not f_i = f + i
Hyphen in a glyph name read as a rangeRanges option is onDisable Ranges or quote the entry: "name=a+b-c"
Insert Characters menu item is greyed outThe glyph editor is active, not the font overviewSwitch to the Font panel first

Frequently asked questions

Why won't my new character type even though I drew it? Because drawing a shape and assigning a Unicode codepoint are two different steps. Until the glyph is mapped to a codepoint, no application can request it — you'll get a substituted font or the missing-glyph box. Add the character through Insert Characters, or name the glyph so it matches a Unicode character, so it gets a codepoint.

How do I assign a Unicode codepoint in FontCreator? Use Insert Characters with the Font panel active: find the character by block, by decimal codepoint, by $/0x hexadecimal codepoint, or by name, then double-click it (or Add) and click OK. The glyph is added already mapped to that codepoint.

Should I use the Private Use Area for my custom symbols? Only when no standard Unicode character exists for them. PUA codepoints (U+E000–U+F8FF) have no portable meaning and aren't accessible to screen readers or search, so they only display correctly where your specific font is applied. Map to a real codepoint whenever one exists.

What to read next