UTF-8 is not Unicode, it is a way of encoding unicode. See: http://www.cl.cam.ac.uk/%7Emgk25/unicode.html#unicode
for a good explanation of the differences.
If you are finding that on one system your program is working correctly and outputting chinese characters, and on another it is not (maybe it is printing empty squares or question marks), this is almost certainly a font issue. You need to have a unicode font installed (such as the Microsoft Arial Unicode font available on an MS Office CD), to see the full range of characters in a UTF-8 encoded file.
All these sorts of issues are covered under the subject of Intenationalization (I18N). This is a good site on the subject: http://www.joconner.com/javai18n/