jFreeChart:在图表中正确显示unicode字符

时间:2012-10-18 08:02:35

标签: unicode jfreechart

我正在创建一个包含jFreeChart的图表:

final JFreeChart chart = ChartFactory.createLineChart(
            "Line Chart Demo 1",       // chart title
            "Caf\00E9",                    // domain axis label
            "Voil\00E0",                   // range axis label
            dataset,                   // data
            PlotOrientation.VERTICAL,  // orientation
            true,                      // include legend
            true,                      // tooltips
            false                      // urls
        );

如您所见,我在轴上有标签的unicode字符: “Caf \ 00E9”为“Voilà”展示“Café”和“Voil \ 00E0”。

当生成此图表的应用程序在“某些”服务器上运行时,它运行良好。对于其他人,它会显示问号(“?”)而不是重音字符。

由于它不会一直运行,我有想法强制编码。

问题是:如何强制标签将这些unicode字符转换为可读字符? 我在文档中找不到可以正确转换这些字符串的方法。 我在网上找到了一些像这样的代码

domainAxis.setTickLabelFont(new Font("Lucida Sans Unicode", Font.PLAIN, 12));

我觉得有趣但是,我怎么能将它应用到域轴和范围轴标签?

问候。

EDIT1:

我想出了如何使用字体“强制”:

Font font = new Font("Tahoma", Font.PLAIN, 12);
categoryplot.getDomainAxis().setLabelFont(font);

但是,输出仍然很奇怪:对于“Caf \ 00E9”,它显示“Café”。有没有办法将这个字符串转换成可读的字符串(Café)?

1 个答案:

答案 0 :(得分:1)

(我更愿意发表评论,但这个声望限制仍然阻碍了我......)

这可能只是一个复制和粘贴错误,但请检查您的unicodes are starting with "\u"

此外,对于“某些”(* nix)服务器,您可能需要load the font from your own resources.