Fonts and CJK rendering: missing glyphs, blur and the font cache
Why a document shows boxes, how to rebuild the font cache, and why ClearType and scaling fight each other.
- Build
- 26300.9457 / 26100.33650
- Edition
- Pro (26H2) / Server
- Architecture
- x64
- Support
- Documentation (E1)
- Evidence
- E1Official documentation
- Verified
- 2026-10-29
- Page type
- Troubleshoot
The short answer
Section titled “The short answer”Three different problems get called “font problems”:
| Symptom | Cause |
|---|---|
| Boxes / question marks | the font lacks the glyphs (missing CJK font, or a subsetted PDF font) |
| Blurry text | DPI scaling on a non-DPI-aware app, or a bitmap font |
| Wrong glyph shapes | wrong font selected for the script (Japanese vs Chinese variants) |
They have different fixes. Installing “more fonts” only helps the first.
Missing glyphs
Section titled “Missing glyphs”Windows ships CJK support through optional features: Settings → System → Optional features → Add a feature → Chinese (Simplified) Supplemental Fonts (and the Traditional/Japanese/Korean equivalents).
Check what is installed:
Get-WinUserLanguageList | Select-Object LanguageTag,InputMethodTipsGet-ChildItem C:\Windows\Fonts -Filter *.tt? | Measure-Object# installed optional font packagesGet-WindowsCapability -Online -Name 'Language.Fonts.*' | Select-Object Name,StateIf a PDF shows boxes while the same text is fine in a browser, the PDF embeds a subset that lacks those glyphs — a font problem in the document, not in Windows.
Wrong CJK variants
Section titled “Wrong CJK variants”The same Unicode codepoint renders differently depending on the font: Chinese (simplified) 直 vs Japanese 直 look subtly different. If a document looks “Japanese” while you typed Chinese, the font fallback picked a Japanese face.
Fix by setting the document/application font explicitly to a Chinese face (Microsoft YaHei, SimSun, Noto Sans SC) rather than relying on fallback.
The font cache
Section titled “The font cache”Windows caches font data; a corrupt cache produces missing fonts, apps that cannot see a newly installed font, or a slow Settings app.
Stop-Service FontCacheRemove-Item "$env:SystemRoot\ServiceProfiles\LocalService\AppData\Local\FontCache\*" -Force -ErrorAction SilentlyContinueStart-Service FontCacheReboot afterwards. The cache rebuilds itself — the first launch of font-heavy apps will be slower once.
Blurry text at scaling
Section titled “Blurry text at scaling”ClearType was designed for 96 DPI. At 125–200% scaling:
- DPI-aware apps re-render at the new scale → sharp.
- Non-aware apps are bitmap-stretched → blurry.
- Bitmap fonts (old installers, some tools) cannot scale at all.
That is the same mechanism as high DPI and scaling, not a font defect.
Turning ClearType off makes text thinner but not sharper at high DPI; it is not a fix for a non-aware app.
Verify a font actually resolves
Section titled “Verify a font actually resolves”Add-Type -AssemblyName System.Drawing$families = (New-Object System.Drawing.Text.InstalledFontCollection).Families$families | Where-Object Name -match 'YaHei|SimSun|Noto' | Select-Object NameIf the family is absent, the application cannot use it regardless of the file being on disk.
Related
Section titled “Related”Lab boundary
Section titled “Lab boundary”E1. Font and text rendering behaviour is documented by Microsoft. The lab VMs have CJK fonts installed by default, so no missing-glyph case was reproduced.