我正在创建一个包含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é)?
答案 0 :(得分:1)
(我更愿意发表评论,但这个声望限制仍然阻碍了我......)
这可能只是一个复制和粘贴错误,但请检查您的unicodes are starting with "\u"。
此外,对于“某些”(* nix)服务器,您可能需要load the font from your own resources.