Encoding choices for symbolic fonts

Sometimes people make fonts that don’t have letters and such in them, but instead have some kind of symbols.

In many cases such symbols have legitimate encoding slots in the Unicode standard, which is used to dictate encoding for most fonts made today. But working with unusual characters from Unicode can be a bit of a pain. So sometimes people assign unusual symbols to the same slots as A, B, C, etcetera. This is technically wrong, but often convenient.

Here is a quick guide to the options and tradeoffs when creating a symbol or “pi” font. This advice is applicable across all font creation tools, not only ours.


  1. Use “proper” Unicode codepoints for all glyphs in your font. This means looking up correct Unicode codepoints for the symbols.
    • Disadvantage: People won’t be able to type the symbols directly, unless you create custom keyboard drivers for your font. Likely they will need to use a character picker built into their OS or app.
    • Advantages: If they switch fonts to another one that has the right symbols properly encoded, their content will remain correct. Unicode/text purists won’t complain.
  2. Use “normal” codepoints for your symbols, so that your symbols are assigned to a, b, c, 1, 2, 3, etc.
    • Disadvantage: If people switch fonts, the symbols will turn into alphabetic gibberish, and it may not even be apparent what was intended. Also, that alphabetic gibberish really is the underlying text, so this approach will confuse screen readers, search, and other things that rely on understanding the text. As a result, it is considered technically “wrong.”
    • Advantage: Can by typed off the keyboard!
  3. Use Private Use Area Unicode codepoints. These are codepoints reserved for special purposes, that have no pre-set meaning.
    • Disadvantages: Has all the disadvantages of using proper Unicode, plus most of the disadvantages of of assigning the symbols to alphabetic codepoints
    • Advantage: usually none, unless others have used these PUA codepoints in some consistent way.

How to Choose

Personally, if the font is going to be used to create public documents and text, I will tend towards option #1. If nobody is going to need to manually enter text using the font, or not often, I will tend towards option #1, If neither of those things is true, and the content will have more limited use or be in a closed system, I will tend towards option #2.
What if your symbols don’t even have proper Unicode codepoints? In that case, the first option is unavailable to you. You might consider whether there is a semi-standard solution being used for those symbols (for example, there is a block in the Private Use Area that has often been used for Klingon).
Thanks to the user who wrote me the question that prompted this blog post!

Trackback from your site.

Thomas Phinney

Thomas Phinney is President of FontLab. Previously he worked at Extensis (web fonts and font management tools) and Adobe (as product manager for global fonts and typography). Thomas is also a type designer, teacher, writer, and consultant on fonts and typography. He has been consulted by Apple, Adobe, Microsoft, Oxford University Press, a “big three” US auto maker, the US Treasury Department, and PBS “History Detectives,” among others. He teaches type design with Crafting Type and has been a repeat guest lecturer for MA Typeface Design at the University of Reading. Since 2004 he has been a board member of ATypI, the international typography association. His typeface Hypatia Sans is an Adobe Original with over 3000 glyphs per font.

Comments (1)

  • Stephen Rapp


    There are a number of typeface users outside of the realm of professional designers using software that doesn’t give them access to much in the way of special character or any non-unicode glyphs. With a combination of PUA encodings and things like PopChar they can use the full palette of glyphs. That’s more of the crafter segment of the market rather than the web coder types. Using symbols in more geeky platforms really is a matter of choosing the options you describe though.


Add a comment