Above post by Manfred Klug gives the exact reason for display of
? As we already know, the range of a character in
Java is from '\u0000' to '\uFFFF',where each unicode represents a symbol.
To display a symbol (for a particular unicode),obviously,JRE needs help of OS.For this JRE needs to know what character set does the underlying Platform supports.
http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#unicode-version By default JRE (on Windows Platform) supports Windows-1252 character set.
http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT This format has symbols having unicode from '\u0000' to '\u00FF'.
So any unicode you specify outside this range, JRE fails to find a symbol for it. Thus instead it displays "?" to signify that "I dont know what this unicode stands for..."