The problem seems to be that when Jasper compiles the .jsp files into .java files it doesn't convert the UTF-8 encoded strings into unicode escapes (i.e. of the form \u***).
Other JSP engines like Resin perform this conversion and the chinese text displays fine.
Is this a bug in the Jasper compiler or do I need to set a flag for Jasper to escape UTF-8?
OK so it seems that jasper can't handle the page contentType being set in an include file. Once its set in the top level page everything works fine.
Thanks for all your help ;)