Programmers sometimes have to deal with some complex languages as Hebrew, Arabic etc. For instance, let's say we have to design a user-interface including Hebrew strings. For such situations for you to overcome and for me not to forget and to be able look behind after a while, I suggest you to read the references given below. The first one is explaining character sets and the historical improvement of it. The next one is about an engine which can be ported to your project to handle these language stuff.
http://www.joelonsoftware.com/articles/Unicode.html
http://userguide.icu-project.org/layoutengine
Kind Regards...