安卓系統如何顯示八萬以上的漢字

轉個帖子:可從根本上解決手機上字體顯示問題。不能ROOT的,只能另尋他法了。一般手機系統自帶的字體只能顯示基本區和CJK擴展A區的漢字 ,其他的只能顯示一點點。擴展B以后得另外加載字體才能顯示。

安卓系統如何顯示八萬以上的漢字

首先要強調,本方法需要修改安卓的系統文件,必須先取得ROOT權限。具體方法請根據自己的機型在網上搜索即可。以下的論述,是在默認已經ROOT的基礎上的。

本方法僅在安卓系統5.1.1上測試通過。

以前我是采用替換掉系統默認字體的方法【先將HanaMinA.ttf改名為Roboto-Regular.ttf(安卓系統默認英文字體),將HanaMinB.ttf改名為DroidSansFallback.ttf(安卓系統默認中文字體)】,雖然可顯示的文字比原字體多了很多,但原字體里面有部分符號,可能我們用來替換的字體中没有,就會造成部分符號或文字无法顯示的問題。後來,找到了通過增加字體文件到系統字體文件夾中,并修改字體XML配置文件的方法,效果更好,理論上來説,只要空間足够,就可以擴展出更多字體。

在取得ROOT權限的基礎上,需要用可以訪問系統内部的文件管理器,比如“Root Explorer”之類。

首先,我們將花園明朝體字體文件复制到 /system/fonts 下(可能复制之後需要修改權限爲 -rw-r–r–)。(花園明朝字體可以此處下載:Unicode超大字符集字體文件

然後,我們進入 /etc/ 下面,找到“fallback_fonts.xml”和“fonts.xml”兩个文件(安卓4.0上無“fonts.xml”,故只需修改“fallback_fonts.xml”),進行編輯(最好先复制到PC上,編輯完再拷回去)。

在fonts.xml文件中有一對標簽標簽,如果我們想讓新字體顯示次序在系統原有的字體之前,那就直接在後面加上如下代碼:

<family>
    <font weight="400" style="normal">YourFont.ttf</font>
</family>

再在fallback_fonts.xml文件中,同样找到標簽,直接在後面加上如下代碼:

<family>
    <fileset>
        <file>YourFont.ttf</file>
    </fileset>
</family>

注意“YourFont.ttf”要換成你自己的字體文件名(安卓支持TTF和OTF格式)。

如果我們想保留原來的字體風格,那就將以上代碼放在之前,這样我們加進去的字體就會排在加載序列的最後面了。

以上操作完成之後,重啓一次手機即可。

經測試雖然我們可以把很多字體都拷進去,但安卓下面很多軟件都無法像WINDOWS系統一样,讓HTML頁面采用多种不同字體來顯示,而是全部文字都依次序,先用第一个字體顯示,如遇此字體不包含某字符,才會依次采用下面的字體顯示。目前發現唯一能真正支持CSS調用系統字體的,就是Gitden Reader(安卓上最好的EPUB閲讀器)。因此我將方正楷體和花園明朝體都拷進手機,並做了相應配置,這样閲讀我自己做的EPUB,就會有豐富样式了。

爲了測試效果,可以打開網站中專門用來測試的頁面:測試您能否顯示CJK-B以上文字

1 个赞

用图片版 :upside_down_face: