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

徵狀
當在 Windows 10 Desktop 或 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 Desktop Client 過去的版本中,隨附有不同的字型集。針對 Windows 10,保證在所有 Windows 10 裝置、所有 Windows 10 版本、各種裝置類別與板型規格中皆提供通用的字型集。此外,此通用字型集提供完整的 Unicode 支援,使用一小組僅需少量磁碟空間的字型來表現全世界數千種語言。

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

https://msdn.microsoft.com/zh-tw/library/windows/apps/hh700394.aspx#recommended_fonts (英文)

Windows Desktop Client 通常用在儲存限制較不嚴格的裝置,因此能容納較多種的字型選擇。然而,一般來說,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 10 行動裝置版並不會包含一些存在 Windows Phone 8.1 的字型:
  • 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 Desktop 字型變更的詳細資料

如上所述,在 Windows 10 已將很多先前包含在所有 Windows Desktop Client 系統的字型移至選用字型功能。

下列表格提供完整清單,列出選用字型功能及代表的語言關聯。以下列出移至這些套件的精選字型,這些字型先前是用在舊版 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 Desktop 的一些應用程式遇到這些徵狀,您可以向應用程式開發者提供意見反應,建議他們更新適用於 Windows 10 的應用程式。同時,您也可以安裝一個或多個應用程式所需的選用字型功能,讓應用程式能正常運作。如要執行這項操作,步驟如下所示:

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

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

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

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

給 OEM 和 系統管理員的建議

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

https://msdn.microsoft.com/zh-tw/library/windows/hardware/mt171094%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396 (英文)

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

https://msdn.microsoft.com/zh-tw/library/windows/hardware/dn898584(v=vs.85).aspx (英文)

若您是系統管理員,且知道您的案例將需要這些選用字型功能中的一個或多個字型,即使您並未將相關的語言套件加入至部署映像,您仍可以使用 DISM,將任何字型功能新增至部署映像。

給開發人員的建議

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

https://msdn.microsoft.com/zh-tw/library/windows/apps/hh700394.aspx#recommended_fonts (英文)

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

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

· IDWriteFontFallback:https://msdn.microsoft.com/zh-tw/library/windows/desktop/dn280450%28v=vs.85%29.aspx (英文)

· IDWriteFactory2::GetSystemFontFallback:https://msdn.microsoft.com/zh-tw/library/windows/desktop/dn280450%28v=vs.85%29.aspx (英文)

· IDWriteFontFallbackBuilder:https://msdn.microsoft.com/zh-tw/library/windows/desktop/dn280476(v=vs.85).aspx (英文)


內容

文章識別碼:3083806 - 最後檢閱時間:08/07/2015 07:51:00 - 修訂: 2.0

Windows 10

  • kbsurveynew KB3083806
意見反應