Best Unicode Fonts for Programer

By Xah Lee. Date: . Last updated: .

This page shows the best fonts for programers.

What do i mean “best”? The font should be:

  1. Monospace.
  2. Clearly distinguish {digit zero,capital letter O, small letter o } 0 O o and {digit one, lowercase letter L, capital case letter I} 1 l I
  3. Have lots math symbols and commonly used Unicode character available.

There are lots fonts designed for programers, but as soon as you started to use some math symbols or Unicode symbols, they don't work well.

Copy and Paste the following into your editor, see how your font do.

«»‹›“”‘’〖〗【】「」『』〈〉《》〔〕 ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ αβγδεζηθικλμνξοπρςτυφχψω ¤$¢€₠£¥ ©®™²³ §¶†‡※ •◦‣✓●■◆○□◇★☆♠♣♥♦♤♧♡♢ ᴁᴂᴈ ♩♪♫♬♭♮♯ “” ‘’ ¿¡ ¶§ª - ‐ ‑ ‒ – — ― … ° ⌈⌉ ⌊⌋ ∏∑∫ ×÷ ⊕⊖⊗⊘⊙⊚⊛∙∘ ′″‴ ∼∂√ ≔× ⁱ⁰¹²³ ₀₁₂ π∞± ∎ ∀¬∧∨∃⊦∵∴∅∈∉⊂⊃⊆⊇⊄⋂⋃ ≠≤≥≮≯≫≪≈≡ ℕℤℚℝℂ ←→↑↓ ↔ ↖↗↙↘ ⇐⇒⇑⇓ ⇔⇗ ⇦⇨⇧⇩ ↞↠↟↡ ↺↻ ☞☜☝☟ ⌘⌥‸ ⇧⌤↑↓→←⇞⇟↖↘ ⌫ ⌦ ⎋⏏↶↷◀▶▲▼ ◁▷△▽ ⇄ ⇤ ⇥ ↹↵↩⏎ ⌧⌨␣ ⌶ ⎗⎘⎙⎚⌚⌛ ✂✄✉✍ ①②③④⑤⑥⑦⑧⑨⓪ 卐卍 ✝✚✡☥⎈☭☪☮☺☹☯☰☱☲☳☴☵☶☷☠☢☣☤♲♳⌬♨♿☉☼☾☽♀♂♔♕♖♗♘♙♚♛♜♝♞♟❦ 、。!,:林花謝了春 紅,太匆匆。無奈朝來寒雨,晚來風。胭脂淚,留人醉,幾時重,自是人生長恨, 水長東。

For more examples of Unicode characters, see: Unicode Characters Search ☢ ☯ ☭ ∑ ∞ ♀ ♂ ♥.

Best Fixed-Width Fonts for Unicode

DejaVu Sans Mono

font DejaVu Sans Mono Unicode 2014-10-05
DejaVu Sans Mono showing Unicode characters.

Download DejaVu fonts at

DejaVu has significantly more Unicode symbols than other popular fixed-width fonts such as {Courier New, Sans Mono, Miriam Fixed, Lucida Console, Lucida Sans Typewriter}.

[see Math Symbols in Unicode]

emacs, font DejaVu Sans Mono
Emacs using font DejaVu Sans Mono

GNU Unifont

GNU Unifont also contains most Unicode chars. Its home page is at:

GNU Unifont is a bitmapped font. (it's converted to scalable format (TrueType) in 2008 by Paul Hardy, but still bitmapped by design). This means, if you make the font size large, you'll see jagged edges.

emacs GNU Unifont
GNU Unifont when enlarged.

Note: There's also Fixedsys and Code2000 that contains extensive Unicode characters. However, their quality is very bad. They are for around year 2005.

Best Variable-width Font for Unicode

Two best proportional font for Unicode are DejaVu Sans and Arial Unicode MS. Both are sans-serif.

DejaVu Sans

DejaVu fonts suite has both fixed-width and variable-width fonts.

Font for Unicode Emoji 😸 👍

see Download Free Unicode Fonts

Which Font Has All Unicode Chars?

No single font has ALL Unicode chars. At best, they contain all chars in the Basic Multilingual Plane, meaning, the most commonly used ~65 thousand chars. (That is, 16 bits).

Font Substitution Tech

{Microsoft Windows, Mac OS X, Linux} all have Font substitution technology. When a char in the current font doesn't have a glyph, the system search for the glyph in other available fonts. So, this way, each font can be specially designed for a particular language or purpose, while you can still display many Unicode symbols in the same page.

StackOverflow answers: “How does a Unicode character get mapped to a glyph in a font?”:

Thanks to Pete Forman who suggested the font DejaVu. 〔Pete Forman websites

Emacs: Font Setup

Emacs: Font Setup

Emacs Quick Start

  1. Where to Download?
  2. Emacs First Day
  3. Basic Emacs Keys
  4. Basic Tips
  5. Less-known Tips
  6. Fun with Emacs
  7. Emacs on Windows
  8. Build Emacs on Linux
  9. Build Emacs from git

Manage Windows

  1. Split Windows
  2. Save Split Windows Config
  3. Make Buffer Flow Side-by-Side


  1. Emacs Bookmark
  2. Open Recently Opened
  3. Open File Fast
  4. Open Last Closed File
  5. Open File Path Under Cursor
  6. Copy File Path


  1. List Buffers
  2. Switch Buffer
  3. Ido Mode
  4. New Empty Buffer
  5. Next/Previous User Buffer


  1. File Manager, dired
  2. Batch Rename Files
  3. Dired Sort File by Time, Size
  4. Rename File, Space to Hyphen/Lowline

On Current File

  1. Run Current File
  2. Delete Current File
  3. Backup Current File
  4. Convert File Line Ending
  5. Open File in External App

Find Replace

  1. Search Text in Buffer
  2. isearch Current Word
  3. Isearch Whitespace Regex
  4. Highlight Text in Buffer
  5. List Delete Highlight Sort Lines
  6. Search Text in Directory
  7. Find Replace in Buffer
  8. Find Replace in Directory
  9. xah-find.el, Find Replace in Pure Elisp
  10. Regex Tutorial


  1. Copy/Paste and kill-ring History
  2. Copy/Cut Current Line If No Selection
  3. Copy/Cut All or Selection
  4. Paste or Paste Previous
  5. Show kill-ring
  6. Copy to Register
  7. 1 Key to Copy/Paste from Register
  8. Copy Append
  9. Sync Copy/Paste Clipboards with Linux X11


  1. Unicode Basics
  2. Unicode Tutorial
  3. Emacs File Encoding FAQ
  4. Best Unicode Fonts for Programer
  5. Elisp: Unicode Escape Sequence
  6. Xah Math Input Mode
  7. Xah Unicode Browser Mode


  1. Font Setup
  2. Proportional Font
  3. Cycle Fonts by Command
  4. Set Line Spacing


  1. Clean Empty Lines
  2. Delete Trailing Whitespace
  3. Delete Whitespace around Cursor
  4. Tabs, Space, Indentation Setup
  5. Newline Representation ^M ^J ^L
  6. Make Whitespaces Visible

Rectangle Edit

  1. Edit Column Text, Rectangle Commands
  2. Insert Alphabets A to Z
  3. Copy Rectangle Region to kill-ring
  4. Align Text
  5. picture-mode, ASCII Diagram

Line Wrap

  1. Hard Wrap Lines
  2. Toggle Line Wrap
  3. Reformat Lines for Source Code
  4. Visual Line Mode, Wrap Lines
  5. Novel Reading Mode
  6. toggle-word-wrap


  1. Run Shell in Emacs
  2. Why Run Shell in Emacs?
  3. Difference between shell, term, eshell
  4. eshell
  5. View Linux man Page

View Things

  1. Spell Checking
  2. View Info Page
  3. View Image File
  4. View Image Thumbnails
  5. Eww Web Browser

Org Mode

  1. Org Mode Markup Cheatsheet
  2. org-mode Tutorial
  3. Source Code Markup
  4. Org Mode for Todo
  5. Org Mode Customization
  6. Elisp: Parse Org Mode


  1. Emacs HTML Tips
  2. Insert HTML Tag
  3. Add Paragraph Tags
  4. Color CSS Color Values
  5. URL to Link, Simple
  6. URL to Link, with Date
  7. Link to Dead Link
  8. Citation to Link
  9. Word to Wikipedia Link
  10. Wikipedia URL to Link
  11. Amazon URL to Link
  12. Google Map URL to Link 🌐
  13. Chinese Char to Ref Link
  14. Image Path to Link
  15. Extract URL
  16. URL Percent Decode/Encode
  17. Replace HTML Entities
  18. Lines to List
  19. Lines to Table
  20. Color Source Code
  21. update-title
  22. CSS Compressor
  23. Markup Function Names
  24. Make Ruby Annotation
  25. Move Image File
  26. Xah HTML Mode

Emacs Efficiency

  1. Keyboard Macro
  2. Completion
  3. Abbrev Mode
  4. Interactive Abbrev
  5. Use Alias for Fast M-x
  6. Jump to Previous Mark
  7. Repeat Last Prompted Command
  8. Effective Windows Management
  9. Tips on Long Term Emacs Productivity


  1. Using magit for git
  2. Emergency vi
  3. Command to Open Menu
  4. Edit Tables
  5. Emacs Chinese Input
  6. GUI vs Terminal

If you have a question, put $5 at patreon and message me.
Or Buy Xah Emacs Tutorial
Or buy a nice keyboard: Best Keyboards for Emacs


Emacs Lisp