These are absolutely fantastic references for anyone who wants to clear up all doubts regarding unicode and its most important encodings (utf-8, utf-16 and utf-32).
Read this if you're feeling masochistic, or want to know everything a human being would possibly want to know (or can know) about unicode.
http://stackoverflow.com/questions/5903008/what-is-a-surrogate-pair-in-java http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings