Saturday, November 18, 2006

Fun with UNICODE and Mirroring Character

What is UNICODE?


Everything you see on your computer is represented by 0's and 1's. Characters are also encoded in the form of 0's and 1's. In this method each character is represented by a number. A common method of encoding is called ASCII (American Standard for Information Interchange). In this method each character is represented by 8 bits. Therefore 256 different characters can be represented using this method. But 256 characters is not enough to mention all characters in all languages. Here comes UNICODE, in which each character is represented by 16 bits. Therefore in this method of encoding, 65536 characters can be represented.
For more information about UNICODE and its applictions visit Unicode.org


Whats interesting?


Unicode is capable of representing many languages, including those written from left to right and those written from right to left. There are special characters in UNICODE to achieve the RTL. One such character is the Mirroring character. The property of mirroring character is that it makes Left to Right Text, Right to Left just by pasting the character, all text after it becomes RTL. So it can be used on sites which use UNICODE character encoding format (like orkut). The property of the mirroring character is that it reverses whatever you paste after it. So "[mirror char]hello, how are you?" becomes "?ouy era woh ,olleh".
Mirror character has nothing to display, so you cant see a mirror character.
One thing to note that is the mirroring character is not rendered on all browsers. It is supported on Firefox, Opera, IE7 (partially). If anyone has any info about other browsers please leave a comment.
Effect of using a mirroring character on orkut with the profile name is shown below:

Note that the word "scrapbook" is inversed. There is more of it left for you to explore and find out ...
Mirroring character also works on some Instant Messengers like Google Talk and Yahoo! Messenger, on which you can send reversed sentences very easily, making a feeling that you can type reversed.


See for yourself


If your are using a browser such as Firefox which renders the unicode mirroring character the following text(in the gray box) will appear reversed:

‮‮
The unicode mirroring character was used to
reverse this text. If it still appears normal
then, your browser does not render mirroring
character or worse do not support UNICODE!
If you are seeing this normally then there
is no point in continuing. Get a browser like firefox that
supports unicode.


Want the mirroring character?


The mirroring character cannot be seen and I couldnot find the HEX or Numeric Code. If anyone has found out leave a comment.
The mirroring character is within these braces
(‮‮( 

Inorder to get the mirroring character, try copying the content between the braces and paste it somewhere to see the magic! ...

What can it be used for?


‮‮http://www.mysite.com/fol/file.html?site/moc.elgoog.www://ptth
Suppose you paste a link like this and if someone clicks he/she goes to mysite.com instead of google.com. This could be used on sites like orkut.com which doesn't allow you to hide the url of the link you are giving.
So it could be potentially used for phishing !Inorder to protect yourself from such methods always look at the url beofre you give away senstitive information about yourself.
Other potential uses are left for you to explore. If you find anything interesting please let me know..

Guess you can take care of it from here on ...
Thats all folks.

Thanks to
Vineeth Mohan for giving me the mirroring character.

Caution!
This trick can potentially be used for phishing! So please always look at the Address Bar for the URL of the page and verify it is the right site you want to visit! Please warn everyone you know about this risk.

47 comments:

Anirudh said...

kochu kallan...beware of this guy, folks! :P

Arun Prabhakar said...

Found out the mirroring character code :
&# 8 2 3 8;
(without the spaces)

Anonymous said...

works on opera too. why does everyone always forget opera...

Anonymous said...

˙ʎΙΙɐsɹǝʌᴉun ǝɹoɯ ʞɹoʍ ʇɐɥʇ sɹǝuɹoɔ ǝбuɐɹʇs ɹǝɥʇo sɐɥ ǝpoɔᴉu⋂ ʇnq 'ᴉɹɐɟɐS s,ǝΙdd∀ uᴉ ʞɹoʍ ʇusǝop sᴉɥ⊥

Anonymous said...

Is there like an anti-reverse character? I think I messed up my meebo...

Unknown said...

Very cool.

I was curious, so I looked at the Unicode code charts and found both the RLO (right-to-left override) and LRO (left-to-right override) characters:
http://www.unicode.org/charts/PDF/U2000.pdf

RLO is 202E (base-16), or 8238 in decimal form as previously noted. LRO is 202D (8237). Using a combination of these you can get different sections of a document/page to read in different directions!

Anonymous said...

Works in Konqueror too.

Anonymous said...

the link thing doesnt work for me.. tried opera and firefox.

Anonymous said...

Your testcase fails for me, yet I'm using firefox on linux..

Arun Prabhakar said...


http://digitalpbk.blogspot.com/2006/12/examples-of-mirroring-character-at-work.html

+ for those who dont believe it...
+ for those who are unlucky to see the mirroring character at work..

Steven said...

A really cool application of this character would be to make a Boustrophedon[1] text reader.



[1]: http://en.wikipedia.org/wiki/Boustrophedon

Anonymous said...

I tried Firefox 2.0, Opera, Safari, and Camino. All of them reject the URL as invalid because it doesn't start with a valid character.

As a parlor trick it's a bit of fun on OS X though. Turn on Unicode Hex Input in the Keyboard prefpane. Then just type Option+2+0+2+E and type away.

‮Try it. It's a lot of fun.

Anonymous said...

Just for the record, you can type ‮ as &#8238 in HTML documents. :-)

Copies and pastes as you would like (at least on Firefox) too.

Unknown said...

This trick wouldn't produce true boustrophedon effect, because the characters themselves should also be reversed, so that d becomes b...

Anonymous said...

Just an erratum to the introduction paragraph. Quoted from http://www.unicode.org/faq/basic_q.html:

"Unicode characters may be encoded at any code point from U+0000 to U+10FFFF. The size of the code unit used for expressing those code points may be 8 bits (for UTF-8), 16 bits (for UTF-16), or 32 bits (for UTF-32)"

The complete range [U+0000,U+10FFFF] cannot fit into 16bits. But it's true that ealy forms of Unicode used to implement Unicode using UCS16 (fixed 16bit), which could only represent the first 16bits of the Unicode standard.

In other words, Unicode is just a list of codepoints representing glyphs/ideograms. Then exist Unicode transformations that can be applied to these codepoints to obtain a binary representation (see UTF-8/16/32).

Wikipedia articles are nice at explaining you all that.

Anonymous said...

‮ does this work?

Anonymous said...

thats it im getting firefox

Anonymous said...

‮ what ‮

Anonymous said...

&#8238
This doesn't work, does it

Anonymous said...

‮I don't see what all the fuss is about.

Arun Prabhakar said...

What you just replied is reversed.
Check it in Mozilla firefox

Anonymous said...

‮Let's see what we can do here.

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

(it is not working for me)

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

oh thanck a lot for information.
I'll pay more attention to ascii now

Anonymous said...

I found the character in a way you can see it:
‫‬‭‮‪‫‬‭‮҉

Have fun with that ^^

Anonymous said...

˙ tests

Anonymous said...

‮This is a simple test to see if unicode mirror is working for my browser.

Anonymous said...

҉words and stuff

Anonymous said...

&#8238

Anonymous said...

&#8238this is a test

Anonymous said...

.firefox

Anonymous said...

‮‮probando
cool XD

Anonymous said...

‮ hello

Teacher Lau said...

let me try!

Anonymous said...

let me try

Anonymous said...

‮‮what is this I don't even

Anonymous said...

lol work plx ‮‮

Anonymous said...

well, amidoinitrite?

Anonymous said...

‮No, you aren't 'doinitrite'.

Anonymous said...

‮Testing, testing, 1.2.3.

Anonymous said...

‮ no shit homes

Anonymous said...

‮‮this is fun

mgh9 said...

(؛ʇʇʇʇı ǝʞıl ı
(؛ ɔɔɔɔɔıʇsɐʇuɐɟ sʇɐɥʇ

Anonymous said...

‮ testing123

Anonymous said...

‮appears to work in chrome and safari too.