شاید بسیاری از برنامه نویسان فارسی زبان به این مشکل در استفاده از ابزار قدرتمند JasperReport برخورد کرده باشند. مشکل از این قرار است که زمانی که شما متن فارسی درون خروجی گزارش خود دارید ، آن متون بصورت ?????? نمایش داده می شوند.
تا به این لحظه دو دلیل برای وجود این مشکل پیدا کرده ام (به احتمال زیاد دلایل دیگری نیز می تواند وجود داشته باشد).

1- مقداردهی نکردن ContentType برای HttpServletResponse:
charset اطلاعاتی که قرار است درون خروجی گزارش نمایش داده شود باید بصورت زیر مشخص شود:

response.setContentType("text/html;charset=UTF-8");

2- پس از مقداردهی ContentType متد getWriter از کلاس HttpServletResponse فراخوانی شود
دقت داشته باشید شئ PrintWriter را حتما بعد از مقداردهی ContentType با استفاده از متد getWriter بگیرید.

response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();

شاد باشید.