Apple offers robust support in macOS for Unicode, a standard that provides a unique number to represent characters and symbols. Unicode encompasses scripts used by languages, symbols for scientific notation, emoji, and other kinds of marks. The standard currently includes nearly 150,000 unique characters, each with its own number and description.
Most fonts contain an extremely small subset of those 150,000-odd characters. Because a type designer has to draw each character in a digital font uniquely, there’s no way for each font to contain more than a few hundred to the low thousands of characters. Font-design tools help keep consistency and automate production, but drawing remains at the heart, keeping character counts low for reasons of profit for commercial typefaces and sheer time for those created for joy, to preserve dying languages, and to expand access. (In digital usage, a typeface typically describes a family of fonts with a consistency of design; a font is a file that contains one or more variations of that typeface, like bold or italic.)
For instance, a fan of the Cyrillic symbol for the “combining ten millions” sign ꙰ (a circle of stars used to represent magnitude in one Cyrillic counting system) would find that Unicode represents it in its list as U+A670. This is a unique “code point,” or hexadecimal (base 16) number within the Unicode world.
If you know this Unicode number, you can get Apple to display it in the Character Viewer. (Press the 🌐 on newer Apple keyboards or press Command-Control-spacebar to bring it up.) In the Search field, enter the code point and the corresponding character appears.
But you might try to copy and paste the above symbol into a document or bring it up in the Character Viewer and get no result. That’s because of the issue above: Unicode is comprehensive while fonts’ character sets are finite.
A digital font typically includes only the characters needed to represent one or more scripts. For European designs, that’s typically what’s Latin-related letters (covering English and most of Western Europe), Greek, and Cyrillic (used for Ukrainian, Russian, and other Eastern European languges). (A script is a set of characters used in a language, and several languages may share one script.)
More robust fonts may include hundreds of extra symbols and characters beyond the primary scripts they represent, whether they’re focused on European languages, Adlam, Arabic, Devanagari, Hanzi, or any of hundreds of others.
Few fonts represent more specialized and obscure characters, such as those used for antique musical notation or dead languages. Even as Unicode continues to add many scripts used for languages with relatively few living speakers, those characters also understandably remain absent from most fonts, too—there’s little call for them.
Many individuals and a few projects have worked on providing high-quality fonts for these purposes. SIL International maintains a wide array of free fonts across scripts, filling many gaps for less-dominant languages that have relatively few speakers compared to those that rely on scripts covering billions of people.
Google set out several years ago to produce Noto, an enormous free-to-use typeface family that ultimately may include a representation of every Unicode character. Every one of the nearly 1,400 fonts in this family are designed with a similar visual appearance, allowing them to be mixed together without causing disharmony.
If you can’t find a character in Noto or SIL International, it may be impossible to find anywhere.
This Mac 911 article is in response to a question submitted by Macworld reader E.B.
Ask Mac 911
We’ve compiled a list of the questions we get asked most frequently, along with answers and links to columns: read our super FAQ to see if your question is covered. If not, we’re always looking for new problems to solve! Email yours to firstname.lastname@example.org, including screen captures as appropriate and whether you want your full name used. Not every question will be answered, we don’t reply to email, and we cannot provide direct troubleshooting advice.