Character styling with Unicode

Sunday 22 May 2005

I mentioned Quicksilver back in September. One of the unusual things about it is its attention to cosmetic detail. This even extends to its name. Even in the Finder, the name appears in small caps, with the version number in subscripts. How do they do that? How can the name of a file include styling information like that?

It can’t. It’s another Unicode trick. The filename isn’t “QuicksilverB36”, it’s “Quıcĸsılⅴεʀᵦ₃₆”. (The cosmetics of this will depend on your browser’s support for some very unusual characters.) Some of these are the letters you think they are, others are not. They are actually:


(I looked these up in UnicodeData.txt from the Unicode consortium.)

Why do some of these exist as subscript variants when their neighbors do not? Because they are parts of other “alphabets”. For example, 0280, Latin Letter Small Capital R, does not follow a small Q, it is part of the International Phonetic Alphabet. And the K is actually a Kra, which is Greenlandic!

Quicksilver has cherry-picked characters that look right, and by using Unicode, have managed to sneak their styling into “plain text” that can be used as a filename.


Firefox actually did a better (but not perfect) job of rendering those unicode characters. IE basically gave up and just put up some tofu white flags.
There's another level of trickiness going on here.

That isn't the filename at all; the filename is straight ASCII "". The fancy version comes from somewhere inside the package; I found it once, I thought in a plist file, but can't seem to find it now.

This leads to one bizarrity; if you have a version of Quicksilver in your Applications folder and you drag in another one, you get a Finder dialogue which claims that there's already a file with the name "QuicksilverB41" (appropriately styled & numbered, of course), when there really isn't.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.