使用iText5在生成的PDF中使用unicode字符

我对生成的PDF中的unicode字符有疑问。 在我自己的工作站上一切正常,但在测试环境中出了问题。

代码插入值如下:

Font boldDefaultFont = FontFactory.getFont(FontFactory.HELVETICA, 10, Font.BOLD); // ... PdfPCell headerCell = new PdfPCell(); // unit.getName() returns "°C" Phrase header = new Phrase(unit.getName(), boldDefaultFont); headerCell.addElement(header); 

Java源代码是UTF-8。

当这在我的环境中运行时(java 1.6.0_18,WinXP)单元格包含°C正如我所期望的那样,但在测试环境(java 1.6.0_18,Win2003)中,结果是°C 。 我已经发现这是一个编码问题(UTF-8’°’是0xc2b0,等于iso-8859-1中的’°’)。

现在我试过以下:

1)将-Dfile.encoding=utf8添加到java选项(在任一环境中都没有效果)
2)将ARIALUNI.TTF添加到测试环境C:\ WINDOWS \ Fonts(无效)
3)将unit.getName()编码为iso-8859-1,但它使得唱歌程度在我的机器中消失。

查看pdf的环境无效,在我的工作站上生成的pdf可以很好地显示在各处,反之亦然。

有没有人有这方面的经验? 我打赌有一种方法可以在两种环境中使用它。