Showing missing characters in Android

As I said in an earlier post, I love to learn languages and as I switched to Ankidroid recently (more in a future post), I stumbled across an annoying issue. I have an Android Tablet (old – sometimes called “legacy” by some, but it’s just 3 years old: Samsung Galaxy Tab 2 10.1 – Android 4.1.2 – probably this has been fixed on newer versions, although it appears I have the exact same problem on my 4.2.2 phone), and some characters don’t show correctly, they show as rectangles or blanks instead. For instance, the Turkish ǧ ends up being blank. This happens on the Dolphin Browser and on AnkiDroid, so it is a problem with the system font.

The fix is quite simple when you know what to do, but you’ll need a rooted phone (I rooted that tablet recently for another reason).

First, you need to find a font that supports the missing character(s). This is actually the most difficult part. I found a number of resources for that (taken from this post):

I’m sure there are plenty of others. Anyway, I took the 3rd one in the list, and downloaded it to my phone. These need to be copied to the /system/fonts folder of your android device.

Then go to the file /system/etc/fallback_fonts.xml and add your new font’s name at the beginning of the list as a new family (mine is called AndikaNewBasic-R):

<family>
  <fileset>
    <file>AndikaNewBasic-R.ttf</file>
  </fileset>
</family>

In my case, adding it at the end didn’t work, probably because some other fallback font wrongly indicated that it could deal with the character…

Reboot your device. Et voilà!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s