由於一些特殊需要,需要在個人設備上顯示CJK擴展區漢字,經多方詢問並驗證,找到了一下辦法,暫總結如下。
一、電腦上顯示
在電腦(Windows,Linux,Mac等系統)上可以通過安裝「花園明朝字體」,讓電腦/PC顯示擴展區的漢字、八卦符號、麻將符號等。截止2015年8月,Unicode已經發展到了Unicode8.0,8.0版本收錄了80,388個漢字。
『1』、花園明朝字體:目前收錄97,745字。
『2』、CJK擴展區漢字:CJK統一表意文字/CJK Unified Ideographs/Unihan。C:China/中國,J:Japan/日本,K:Korea/韓國。
『3』、「花園明朝字體」下載地址:Hanazono fonts
二、Android上顯示
截止2016年,目前大多数安卓手机系统应该都是5.0以上的系统了,安卓5.0以上系統字体显示机制基本上是完善了,所以可以直接添加完整的大字符集字体,达到如电脑一样无囗囗「即方框」的效果。
1、獲取Android手機的Root權限或Root Android手機
本人用的是KingRoot,但是並不確保其他手機可以完整地root手機。
2、安裝Root Explorer或者其他類似「我的電腦」的、具有「訪問/system目錄權限」的Android App。「App: Application/應用程序 的縮寫」。
3、打开Root Explorer,将所扩展区字体「HanaMinA、HanaMinB」复制到 /system/fonts 下并修改权限,这里提供两个扩展区字体。
4、通過RootExplore進入/etc目錄
5、打開fallback_fonts.xml和fonts.xml,找到以下語句
1 <family> 2 <fileset> 3 <file lang="zh-Hans">NotoSansHans-Regular.otf</file> 4 </fileset> 5 </family> 6 <family> 7 <fileset> 8 <file lang="zh-Hant">NotoSansHant-Regular.otf</file> 9 </fileset> 10 </family>
这里记录了系统默认中文字體爲思源黑體(NotoSansHans为簡化漢字,NotoSansHant为傳統漢字),在上面这段语句「NotoSanHans」后添加扩展区字体的配置。格式如下:
1 <family> 2 <fileset> 3 <file>YourFont.ttf</file> 4 </fileset> 5 </family>
注:
Ⅰ.“YourFont.ttf”请换为添加到fonts文件夹扩展区字体「HanaMinA、HanaMinB」的名称。
Ⅱ.其中lang属性是否设置是两可的,大可不必添加。
Ⅲ.Android5.0系统同时支持.otf和.ttf两种字体格式。
Ⅳ.一个family集下可以同时对应四种粗细的字体,分别为Regular(常规)、Bold(粗体)、Italic(斜体)、ItalicBold(粗斜体),但一般对于扩展区字体一个family集下只用对应一个字体即可。
一些说明:
1.在Android5.0中,字体显示的原则是:「在fallback_fonts.xml以及fonts.xml中,越先记录的字体就越先被应用」。也就是说若所记录的字体同时含有同一字符的unicode编码,系统會用最前面记录的字体去顯示對應的漢字。
參考 1:Android系統顯示及輸入漢字超大字符集(包括E區)
參考 2:在Android5.0下安装扩展区字体