This topic seems to come up again and again, so I thought I'd make a sticky post here to avoid having to repeatedly explain it...
We regularly get people saying "The fonts are broken, my Chinese/Japanese/etc text won't display correctly!"
And the most common reason for this has nothing to do with fonts or graphics, it's because people have written code like this:
String textToDisplay = "一些文字";
The code above is going to screw up the encoding in at least some situations, depending on the compiler and editor that are involved. And no, it can't be magically fixed by sticking an L in front of the literal.
The String class is expecting UTF-8 characters, but compilers have no idea what type of encoding your text editor was using when you saved the source-file, and they'll make an assumption which is generally going to be wrong. So most likely, the encoding is going to get garbled somewhere between your editor, the compiler, and the library classes. The ONLY cross-platform way to embed a unicode string into C++ source code is by dumbing it down to ASCII + escape characters. That's a pain to write by hand, but luckily if you fire up the Introjucer and use its "UTF-8 String Literal Helper" tool, it'll do all the messy stuff for you, and convert any unicode string into a safe C++ expression that you can paste into your code, e.g.
String textToDisplay = CharPointer_UTF8 ("\xe4\xb8\x80\xe4\xba\x9b\xe6\x96\x87\xe5\xad\x97");