1

我正在创建一个图表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”显示“Café”,“Voil\00E0”显示“Voilà”。

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

由于它并非一直运行,因此我有强制编码的想法。

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

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

我觉得很有趣,但是,如何将它应用于域轴和范围轴标签?

问候。

编辑1:

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

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

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

4

1 回答 1

1

(我想发表评论,但这个声誉限制仍然阻止我......)

这可能只是一个复制粘贴错字,但请检查您的unicode 是否以 "\u" 开头

此外,在“某些”(*nix)服务器上,您可能希望从您自己的资源中加载字体。

于 2013-04-28T16:26:14.900 回答