立即註冊  找回密码

QQ登录

只需一步,快速开始

开启辅助访问 切换到宽版

東里論壇

搜索
查看: 8113|回复: 0

[使用心得] 如何让安卓系统显示UNICODE八万汉字

[复制链接]

335

主题

486

帖子

3089

积分

管理員

Rank: 9Rank: 9Rank: 9

积分
3089
发表于 2015-4-17 11:41:44 |阅读模式
最近为了建立东里书斋手机站,折腾了好几天,最后发现使用普通方法,在手机上依旧无法显示CJK-B及以后的字符,这对阅读我的在线文本有点影响,因为我网站中的文本有不少CJK-B及以后的字符。为了能够显示,拿自己的华为手机折腾了下。

网上有人用@font-face的方法来解决epub的样式显示问是,但我试验后,似乎没效果。查了些资料,最后终于决定用扩展系统字体的方法来解决。

要强调的是,本方法需要修改安卓的系统文件,必须先取得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无此文件)两个文件,进行编辑(最好先复制到PC上,编辑完再拷回去)。

在fonts.xml文件中有一对标签<familyset></familyset>标签,如果我们想让新字体显示次序在系统原有的字体之前,那就直接在<familyset>后面加上如下代码:
<family>
    <font weight="400" style="normal">YourFont.ttf</font>
</family>


再在fallback_fonts.xml文件中,同样找到<familyset>标签,直接在后面加上如下代码:
<family>
    <fileset>
        <file>YourFont.ttf</file>
    </fileset>
</family>

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

如果我们想保留原来的字体风格,那就将以上代码放在</familyset>之前,这样我们加进去的字体就会排在加载序列的最后面了。

以上操作完成之后,重启一次手机即可。

经测试虽然我们可以把很多字体都拷进去,但安卓下面很多软件都无法像WINDOWS系统一样,让HTML页面采用多种不同字体来显示,而是全部文字都依次序,先用第一个字体显示,如遇此字体不包含某字符,才会依次采用下面的字体显示。目前发现唯一能真正支持CSS调用系统字体的,就是Gitden Reader(安卓上最好的EPUB阅读器)。因此我将方正楷体和花园明朝体都拷进手机,并做了相应配置,这样阅读我自己做的EPUB,就会有丰富样式了。

为了测试效果,可以打开网站中专门用来测试的页面:测试您能否显示CJK-B以上文字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即註冊

本版积分规则

QQ|网站地图|小黑屋|Archiver|東里論壇 ( 粤ICP备14015598号 ) 公安备案图标粤公网安备 44512202000019号
GMT+8, 2024-4-20 01:00 , Processed in 0.113551 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.