為什麼在 Windows 10 上某些應用程式中,某些文字會顯示成方形方塊?

適用於: Windows 10

徵狀


當在 Windows 10 桌面版或 Windows 10 行動裝置版上執行某些應用程式時,有些字元會顯示為方形或矩形方塊,或顯示為內含小數點、問號或「x」的方塊,然而相同的應用程式在舊版 Windows 或 Windows Phone 版本上執行時並不會發生這種問題。

這個問題通常涉及中東語言或亞洲語言 (阿拉伯文、中文、印度文等等) 中的文字。 在 Windows 10 行動裝置版中,這個問題最可能涉及東亞語言 (中文、日文、韓文)。 在 Windows 10 Desktop,這個問題通常會涉及系統設定外的語言文字,以及某些應用程式類型支援使用國際語言的案例 (例如,瀏覽網頁、社交網路應用程式的使用者通知)。

原因


Windows 10 中的一些重大改良功能會影響字型,以下會提供更多詳細資料。 這些變更的副作用是,可能會影響到針對舊版 Windows 或 Windows Phone 而建立的一小部分現有應用程式。
  • 在 Windows 10 行動裝置版並不會包含一些曾包含在 Windows Phone 8.1 的字型。
  • 一些先前包含在所有 Windows 桌上型電腦系統的字型已移至選用字型套件,因此不見得所有 Windows 10 桌上型電腦系統上都會有這些字型。

以下會提供這些變更的詳細資訊。 在某些應用程式中,這些變更可能會導致某些國際文字顯示為「方形方塊」的徵狀。

所有 Windows 10 版本包含提供各種語言支援的字型,且 Windows 平台加入字型後援機制,它的設計目的是確保任何語言的文字永遠都能以清楚的字符顯示,而不是顯示方塊。 但有些應用程式可能會與特定顯示某些 Unicode 字元的字型存在直接的相依性,而無法善用 Windows 提供的字型後援機制。 在某些情況下,這些應用程式會與在所有 Windows 10 系統預設不存在的字型有直接的相依性。 因為應用程式嘗試使用的字型在系統上並不存在,系統會改用其他字型來顯示文字,而該字型可能無法支援所有欲顯示的字元。 在欲顯示某字元而使用的字型不支援該字元時,系統會使用該字型預設的「未定義」字符。 大多數字型的「未定義」字符外觀是矩形的方塊,或是外觀相似的字符。
 

Windows 10 關鍵字型改良概觀

開發 Windows 10 的重大高階目標是讓 Windows 成為一系列適用於不同類別裝置的作業系統,讓這些裝置採用共同的作業系統核心及共用應用程式平台 — 通用 Windows 平台 (UWP)。 UWP 讓應用程式只要撰寫與建立一次,就能在從 Hololens 到 Xbox 和 Surface Hub 等各種裝置上執行。 此收斂型應用程式平台的其中一個要求,便是在這些裝置類別中使用通用的字型集。 在 Windows Phone、Xbox One、Windows 桌面用戶端過去的版本中,隨附有不同的字型集。 針對 Windows 10,保證在所有 Windows 10 裝置、所有 Windows 10 版本、各種裝置類別與板型規格中皆提供通用的字型集。 此外,此通用字型集提供完整的 Unicode 支援,使用一小組僅需少量磁碟空間的字型來表現全世界數千種語言。

這篇文章提供通用的 UWP 字型集:

Windows 10 字型清單

Windows 桌面用戶端通常用在儲存限制較不嚴格的裝置,因此能容納較多種的字型選擇。 然而,一般來說,Windows 桌面都是用在超大型儲存容量的裝置,但近年來我們已看到有新的板型規格,像是具備較小儲存體的低成本平板電腦。 Windows 10 的另一個重大的高層級目標是讓 Windows Desktop Client 在較低成本的裝置能運作得比之前更好。

隨著 Windows 涵蓋的國際語言持續增加,這意味著每一種系統都提供了越來越多的國際字型,不論特定作業系統的使用者是否確實需要其他語言的字型。 然而,這會在字型選擇器控制項和對話方框新增很多選擇,而這些選擇對特定的使用者來說關聯性很低。 例如,西班牙文的使用者能夠選擇數十種泰文字型,雖然他們也許從來不使用泰文。 然而,這也會讓每一個 Windows 桌上型電腦系統增加數百 MB 的大小。 為了減少 Windows 需要的磁碟空間數量,並改善提供給特定使用者之字型選擇的關聯性,許多 Windows 字型已經移至選用字型功能。

這些選用字型功能由不同的字體組成,並具有語言關聯,且將根據這些語言關聯自動進行安裝。 例如,「簡體中文補充字型」功能會有專門用在簡體中文的字型。 如果安裝了 Windows 10 簡體中文版本,此版本將預先安裝此選用字型功能。 如果安裝了 Windows 10 不同語言的版本,但使用者啟用了簡體中文輸入法,或是他們的設定檔與其 Microsoft 帳戶相關聯,且帳戶是包含簡體中文,又設定檔可漫遊至裝置,則簡體中文補充字型功能會經由 Windows Update 自動進行安裝。

只要安裝選用字型套件,以符合經常在系統使用的語言集,我們就能在提供的字型選擇數量與使用的磁碟使用量取得最佳平衡。 不過,即使沒有安裝任何這些選用字型功能,每個 Windows 10 桌面版系統仍會包含常見的 UWP 字型,以確保 Windows 仍具備 Unicode 與國際文字的絕佳支援,並且確保通用 Windows 應用程式能夠在桌上型裝置和每個其他板型規格上具備良好的文字顯示效果。

Windows 10 行動裝置版文字變更詳細資訊

為了定義使用字型數量有限的集成 UWP 字型集,原本在 Windows Phone 8.1 中提供的某些字型已從 Windows 10 行動裝置版中排除:
  • Dengxian、Dengxian Bold
  • Estrangelo Edessa
  • Khmer UI、Khmer UI Bold
  • Lao UI、Lao UI Bold
  • Leelawadee、Leelawadee Bold
  • Lucida Sans Unicode
  • Microsoft MHei、Microsoft MHei Bold
  • Microsoft NeoGothic、Microsoft NeoGothic Bold
  • Microsoft Uighur
  • Segoe WP、Segoe WP Light、Segoe WP SemiLight、Segoe WP Semibold、Segoe WP Bold、Segoe WP Black
  • Segoe WP Emoji
  • Tahoma、Tahoma Bold
  • Urdu Typesetting、Urdu Typesetting Bold
  • Yu Gothic Bold


如果 Windows Phone 應用程式直接依靠上述其中一種字型來顯示特定 Unicode 字元,且不使用 Windows 提供的字型後援機制,則可能導致字元顯示為「方形方塊」字符。

Windows 10 桌面版文字變更詳細資訊

如前文所述,有些字型先前應包含在每個 Windows 桌面用戶端系統中,但在 Windows 10 中已移至選用字型功能。

下列表格提供完整清單,列出選用字型功能及代表的語言關聯。 以下列出移至這些套件的精選字型,這些字型先前是用在舊版 Windows 的殼層使用者介面,但已被較新的 Windows 字型取代。
 
選用字型套件 語言關聯 移至選用套件的重要字型
阿拉伯文字體補充字型 使用阿拉伯文字體的語言;例如,阿拉伯文、波斯文、烏都文。  
孟加拉文字體補充字型 使用孟加拉文字體的語言;例如,阿薩姆文、孟加拉文。 Vrinda
加拿大原住民語音節補充字型 使用加拿大語音節字體的語言;例如,依奴提圖特文。 Euphemia
卻洛奇文補充字型 卻洛奇文。 Plantagenet Cherokee
梵文字母補充字型 使用梵文字母字體的語言;例如,印度文、貢根文,馬拉提文。 Mangal
衣索比亞文補充字型 使用衣索比亞字體的語言;例如,阿姆哈拉文,提格利尼亞文。 Nyala
古吉拉特文補充字型 古吉拉特文;其他任何使用古吉拉特文字體的語言。 Shruti
果魯穆奇文補充字型 西旁遮普文;其他任何使用果魯穆奇文字體的語言 Raavi
中文 (簡體) 補充字型 簡體中文  
中文 (繁體) 補充字型 繁體中文 細明體、細明體_HKSCS
希伯來文補充字型 希伯來文  
日文補充字型 日文 Meiryo、Meiryo UI、MS Gothic、MS Mincho
高棉文補充字型 柬埔寨文;其他任何使用高棉文字體的語言。 DaunPenh、Khmer UI
坎那達文補充字型 坎那達文;其他任何使用坎那達文字體的語言。 Tunga
韓文補充字型 韓文 Batang、Dotum、Gulim
寮文補充字型 寮文;任何其他使用寮文字體的語言。 DokChampa、Lao UI
馬來亞拉姆文補充字型 馬來亞拉姆文;其他任何使用馬來亞拉姆文字體的語言。 Karthika
歐迪亞文補充字型 歐迪亞文;其他任何使用歐迪亞文字體的語言。 Kalinga
泛歐語系補充字型 沒有自動的語言關聯。 無 (都是 Windows 10 的新字型)。
錫蘭文補充字型 僧伽羅文;其他任何使用僧伽羅文字體的語言。 Iskoola Pota
敘利亞文補充字型 使用敘利亞文字體的語言。 Estrangelo Edessa
坦米爾文補充字型 坦米爾文;其他任何使用坦米爾文字體的語言。 Latha
特拉古文補充字型 特拉古文;其他任何使用特拉古文字體的語言。 Gautami
泰文補充字型 泰文;其他任何使用泰文字體的語言。 Leelawadee
如果應用程式透過這些字型的其中一種字型來顯示特定 Unicode 字元,且不使用 Windows 提供的字型後援機制,且如果含有該字型的選用字型套件沒有安裝在系統上 (通常是因為系統和使用者設定檔沒有設定為啟用關聯的語言),則可能導致字元顯示為「方形方塊」字符。

給 Windows 10 使用者的建議

如果您在 Windows 10 桌面版的某些應用程式中遇到這些徵狀,則可向應用程式開發人員提供意見回饋,建議他們針對 Windows 10 更新其應用程式。 同時,您還可以安裝一種或多種選用字型功能,以便某些應用程式能夠正常運作。 如要執行這項操作,步驟如下所示:

如果您知道無法正確顯示文字的語言,且經常使用該語言:

如果您知道所涉及的語言,您可以將該語言新增至使用者設定檔,如此一來系統將會自動進行安裝任何關聯的選用字型功能。 (注意:系統可能也會安裝其他與語言相關的選用功能,例如文字預測或拼字檢查。)
  • [開始] 功能表,開啟 [設定]
  • 選取 [時間和語言]
  • 選取 [地區及語言]
  • 選取 [新增語言]
  • 選取特定的語言。
啟用選用字型功能,而不變更語言設定:

如果您不知道特定的語言,或是知道無法正確顯示文字的語言,但不想將該語言新增至您的使用者設定檔,您可以安裝任何選用字型功能,而不須啟用任何額外的語言。
  • [開始] 功能表,開啟 [設定]
  • 選取 [系統]
  • 選取 [應用程式和功能]
  • 選取 [管理選用功能]
  • 選取 [新增功能]
  • 從清單中選取任何選用字型功能。

如果您在一些 Windows Phone 應用程式遇到所述的徵狀,您可能需要聯絡應用開發人員,建議他們使用此處提供的指導來更新應用程式。 注意: Windows 10 行動裝置版不支援任何選用字型功能。

給 OEM 和系統管理員的建議

如果您在 Windows 10 部署映像進行語言套件或國際設定的設定,您應使用部署映像服務與管理 (DISM) 工具,來加入與您新增至映像的語言套件關聯的選用字型套件 (與其他選用、與語言相關的功能)。 下列文章提供有關選用字型功能與相關聯的 Windows 10 語言套件語言的詳細資訊:
 

隨選功能

如需 Windows 10 的語言套件與所有選用、與語言相關的功能概觀,也請參閱這篇文章:
 

新增 Windows 映像語言

如果您是系統管理員,且知道您的使用情境會需要上述一種或多種選用字型功能中的字型,即使您沒有將相關語言套件納入部署映像,您仍可使用 DISM 將任何字型功能新增至部署映像。

給開發人員的建議

如果您擁有對已從 Windows 10 行動裝置版排除的字型具有相依性的 Windows Phone 應用程式,或對已遷移至選用字型套件的字型具有相依性的 Windows 桌面應用程式,且您的應用程式不使用 Windows 提供的字型後援機制,則您的應用程式可能會受到 Windows 10 中字型變更的影響。 最有可能會受到影響的應用程式類型與應用程式案例包括:
  • 使用不提供字型後援的較低層級圖形 API,以處理複雜配置的瀏覽器和其他應用程式 (例如,DrawGlyphRun、ExtTextOut using ETO_GLYPH_INDEX、ScriptTextOut)。
  • 使用協力廠商圖庫的遊戲或其他應用程式。
  • 可能顯示文字的應用程式案例,涉及超出應用程式或 Windows 的顯示語言,或是其他使用者所用的語言;例如,瀏覽網頁、接收的文字訊息或是來自其他使用者的通知。
如果您的應用程式顯示了所述徵狀,特別是上述的案例,您應該要檢閱應用程式依賴的字型。 請參閱下列文章,以了解建議在 Windows 10 應用程式使用的字型:
 

Windows 10 字型清單

文章中列出的字型保證在所有的 Windows 10 裝置上都會存在。

如果您的應用程式使用 DirectWrite,您可能需要考慮利用 DirectWrite 提供的字型後援機制。 即使您正使用較低層級 API,且想要執行自己的字型後援實作,DirectWrite 具有 API 來提供預設的對應,可讓您補充自訂的對應。 請參閱以下重要 API 的 MSDN 文章: