Android UnicodeMap lets you browse Unicode characters by range and search for them by name, display them (when Android has the font) and copy them to the clipboard. It can also decode a string of Unicode characters to names.
I wrote this because Android doesn't offer a way to enter
exotic Unicode characters (in
the en-US
locale, which I use, it is limited to accented
Latin characters). Unfortunately it isn't very good as an input
method. This app is just
the list of
Unicode characters, arranged by block: you can browse through them,
enter them in a dedicated text field, and copy that field to the
clipboard (it works a bit the
way Gucharmap does).
There is also a primitive search feature (to search on the character
name). Of course, Android will only properly
display a minuscule fraction of the characters, but those that are
not properly displayed still “work” in the sense that you can copy
them around or whatever.
This is a very basic and limited program, and not much data is available (essentially, only the character name, its code point and its general category). The list of characters, on the other hand, is complete: the latest version has the full Unicode 6.1 character set (all 110 181 of them). In particular, the program is not limited to the first plane of Unicode (aka, 65536 codepoints): you can copy-paste cuneiform if you like.
UnicodeMap is
installable from the
Android Market Google
Play.
You can also get the source code or the compiled .apk
directly from
the android/
directory on my FTP site. The source code with
history can also be obtained
using Git:
see here.
License : UnicodeMap is free software. The code written by me is in the Public Domain. (The data is ©1991–2012 Unicode, Inc., and freely redistributable under these terms.)
I've gotten loads of email asking me: Why are so many
characters displayed as squares?
or variants
thereof: Many characters are missing!
— I can't see
most of the Unicode.
— All I see are boxes.
—
and so on.
So, here's the short answer:
decodefeature to identify it. If you're messaging with someone, what matters mostly is what their phone can display, not yours, and I obviously can't detect that… In fact, generally speaking, the whole point of entering a character on your phone is not just to display it, so it would make no sense to limit character to those the phone can display.
The main change in this version is that the Unicode database has been upgraded to version 6.1.0 of the Standard (previously 5.2.0).
Also added were a couple of buttons on character description popups (to copy the character alone to the clipboard, or to copy its name).
The app should now work propery with any screen size (e.g., tablets).
This version added a shortcut on CJK characters to view Unihan data on the the Unicode Consortium's website.
Also new in version 0.0.3 was a (probably badly
named) decode
feature, which takes a Unicode character strings
and shows the names and numbers of the characters in question.
Version 0.0.2 added some support for CJK ideographs and Hangul syllables (though you still can't search for them), but it's not very useful; the Unihan database is far too large to include in an Android app.
Also new in version 0.0.2 was: the ability to find a character by its number, the display of the character category, and data from Unicode 5.2.0, along with a number of more minor features and bugfixes. (Also, the app should now behave correctly when the screen is reconfigured. There's still one bug which really annoys me, however: if you use text filtering in lists—by typing letters on the keyboard, assuming you have one—and then cancel the filter, the previous position is lost.)
There's one crash that I'm aware of that occurs when populating the database (when first launching the app, or after an upgrade). I believe this is an Android bug causing the SQLite database not to be properly unlocked in certain circumstances, but I haven't been able to analyse it properly.
If it happens to you, just stop the app and retry. Also, don't open or close your phone (or reorient your tablet) when the database is being populated.