A few people have mentioned having problems in which all the fonts on their system seem to be broken, and the user interface is displaying with strange symbols. I think I understand what's going on in these cases and how it can be fixed.
The user interface displays all text with strange symbols, and font lists (e.g. the Fonts control panel) don't show any TrueType or OpenType fonts.
Here's a screenshot from one user report that illustrates the user interface symptoms:
(Pretty busted, eh!)
The root cause is a code change in GDI that interacts with certain font files. We're investigating the fix to GDI.
But there's a detail related to specific font files that also causes this, and that's something users may be able to do something about. Specifically, certain TrueType Collection font files (.ttc) can create overly-long registry entries when installed; in particular, this can happen if the TTC file contains a large number of fonts. I was able to reproduce this issue by installing a TTC file that has 12 fonts. GDI is unable to process these overly-long registry entries.
There are steps you can take to detect and uninstall these fonts, described below.
How you can investigate
If you have these symptoms then here's something you can investigate to see if this is your issue.
First, launch a console ("Command Prompt") window. Even though you can't easily navigate the user interface because of the issue, you can launch a console from the keyboard by pressing Windows key + R, which opens the Run dialog, enter "cmd.exe" (without the quotation marks), and press enter.
When the console window opens, it may display with a small font. If you remember the layout of the console properties dialog, you may be able to figure out how to change the font size. (In the list of sizes, the larger sizes are lower in the list.) Otherwise, hopefully the text is still large enough for you to read.
In the console window, run this command --- this will retrieve some information from the registry but will not change anything:
reg query "hklm\software\microsoft\windows nt\currentversion\fonts"
You should see a number of lines displayed; these are all registry entries associated with different installed fonts. The report for each entry has three values: the name, the entry type, and the value. The entry type for all of these entries should be "REG_SZ"; the entry name is everything that precedes that in the line (excluding the trailing spaces). Look for an entry with a really long name.
Here's an example from the system on which I was able to reproduce this issue — in this case, I knew what font I was looking for, and so used a slightly different command that retrieved just the one entry:
In this example, the name portion of the entry is this (without the quotation marks):
"Avenir Next Bold & Avenir Next Bold Italic & Avenir Next Demi Bold & Avenir Next Demi Bold Italic & Avenir Next Italic & Avenir Next Medium & Avenir Next Medium Italic & Avenir Next Regular & Avenir Next Heavy & Avenir Next Heavy Italic & AvenirNext-Ultraligh"
Most entries won't be anywhere near this long. Notice that the end of the name portion is truncated — the token "UltraLight" is missing the last character. This kind of truncation is a good indicator that the name is too long.
If you find a long entry like that, then that is a likely cause of your symptoms.
How to fix (for advanced users)
A fairly quick way to fix the issue is to delete the overly-long registry entry. This will have the effect of uninstalling that font file, but the file itself is not deleted.
Unfortunately, given the state of the system, you won't be able to do this in the registry editor (regedit.exe). Instead, it has be done from a console window. This is a little trickier, and some may not feel comfortable with this.
The basic steps are that you use the reg delete command within an elevated console window. There's a significant risk in this: if you enter the command wrong, you could end up uninstalling all your fonts rather than just the one! That would leave your system in a state that would be harder to recover from doing registry fixes than the current state. The key issue is that you need to correctly specify the specific entry to delete, and not simply the registry key that holds all the entries. You can copy the name for the bad entry from the query result obtained using the steps above.
Because of the risks in this, I'm not going to provide step-by-step instructions. If you're comfortable editing the registry from the console, then you can probably figure out the exact steps to delete the bad entry. If you're not entirely comfortable, then you can look for someone you trust who is able to do this, or you can try doing a system restore.
If you do take this step to delete the entry, then as a safeguard, I recommend that you first export the entire registry key and the entries it contains so that you can restore that later if needed. You can export the key in question using the following command:
reg export "hklm\software\microsoft\windows nt\currentversion\fonts" FontsRegKey.reg