It appears that in all these years, I’ve never yet written about turning text upside-down.
The earliest record I have of my interest in this topic is an April 1992 post I saved from the rec.puzzles newsgroup, written by someone named Joseph De Vincentis. At the end of the post, the author’s .signature said, in part:
Help! My .sig just flipped umop-ap!sdn !
I was delighted by the idea of using letters and punctuation marks that looked like upside-down versions of other letters and punctuation marks. So I wrote a converter in the C programming language; it took text input, reversed the order of the characters, and replaced each character with a rough equivalent of what that character looked like upside-down.
(In case this isn’t clear: the code didn’t really turn anything upside-down; it’s a faux inversion. It just replaced, for example, every u in the source text with n in the output text, and vice versa.)
For instance, I sent some email using text converted by that code, which included this sentence:
.sJa++al ase>Jamol 6u!sn 6u!+!Jm umop-ap!sdn fo aldwexa ue s! s!y+
(In case you can’t read upside-down, that says “This is an example of upside-down writing using lowercase letters.”)
Unfortunately, not every letter in the English alphabet has a corresponding upside-down letter. So in my code, I wrote this comment:
Note that uppercase letters are inverted directly where possible, inverted as their lowercase equivalents otherwise, and left alone if neither is possible (as for 'k').
The C code also right-justified the upside-down text, so that if you looked at it upside-down, it was left-justified.
In 1995, I realized that it was much easier to write this kind of letter-substitution toy in the Perl programming language. Here’s the core of the Perl version:
$a[$i] =~ tr/A-Za-z,`'()><!2345679^/Vq>p3j6HIrK7WNOdbJS+nAMXhZeq>paj6y!fklwuodbJs+n^mxhz`,,)(][<>i5Eh29L6v/; $a[$i] = reverse $a[$i];
tr command is for exactly this kind of purpose: replacing each member of a set of characters with the corresponding member of another set of characters.
But unfortunately, the resulting text still didn’t look very convincingly like upside-down text. For example, I was still replacing a T with a +; in some fonts those look reasonably similar, but it wasn’t ideal.
Fast-forward a couple of decades. In recent years, most computer systems have switched from displaying English letters using the old ASCII character encoding, which had space for only 255 characters, to various more modern character encodings, mostly based on Unicode, which allows for encoding over a million different characters.
And some of those characters, in some typefaces, look a lot like upside-down versions of English letters.
I was vaguely aware of these developments, but it hadn’t occurred to me to rewrite my upside-down encoder to use Unicode. But now a friend has pointed me to a nifty web-based tool called Flip, which does this kind of upside-downizing in realtime as you type into a text box.
I entered my favorite pangram, XV quick nymphs beg fjord-waltz, and got back this result:
˙zʇlɐʍ-pɹoɾɟ ƃǝq sɥdɯʎu ʞɔınᕹ ʌx
(That’s not an image; those are selectable and copy/pastable text characters.)
If you want to find out which Unicode character any given upside-down-looking character is, you can go to the Flip page, type a letter, copy the resulting upside-down-looking character, and paste it into the character-search box at the top of the page. About half of the characters are from the International Phonetic Alphabet, as represented in Unicode by the IPA Extensions block of characters. Others are ordinary letters from the Latin character set, and a couple of letters are their own inversions. The character that looks like an upside-down q is Canadian Syllabics Nunavik Ha, from the Unified Canadian Aboriginal Syllabics block.
A couple of the upside-down-looking characters still don’t look quite like their upright equivalents, at least in the font that I’m viewing them in, especially with regard to ascenders and descenders. And this converter operates only on lowercase English letters; it converts uppercase to lowercase, and ignores anything that isn't an English letter. But it’s nonetheless a fun toy.
And now, if I want to sign something upside-down, instead of giving my name as uew+Jey par, I can give it as uɐɯʇɹɐɥ pǝɾ.
Sadly, many of the characters provided by the new converter are not English letters, which may make it hard for me to find this entry in the future. I found the material from 1992 and 1995 by searching my computer for umop, which is a sequence of English letters but not an English word; it’ll be harder to know what to type if I want to search for pɹoɾɟ. But that’s a small price to pay for more aesthetically appealing upside-downifying.
(And notice how I cleverly added umop to this page, in that last paragraph, so that I can now find this entry by searching for that.)
- I was tempted to publish this entire post in upside-down writing, but I decided that that would probably be more of a hassle to read than fun. It would have started out like this: “˙uʍop-ǝpısdn ʇxǝʇ ƃuıuɹnʇ ʇnoqɐ uǝʇʇıɹʍ ʇǝʎ ɹǝʌǝu ǝʌ’ı ‘sɹɐǝʎ ǝsǝɥʇ llɐ uı ʇɐɥʇ sɹɐǝddɐ ʇı”
- In case anyone wants to see representations of the entire Unicode character set, you can view a character table page.
- In this column, I didn’t really say much useful about Unicode. And I failed to make a distinction between code points, character names, and glyphs, so I probably said some things that are technically inaccurate. Unicode is a vast and fascinating topic; I wrote a little about it in column ddd, back in 1999, and I once posted my favorite Unicode character name, but I could spend multiple columns talking about it and still barely scratch the surface.