我这里是用java的 Runtime.getRuntime().exec 调用命令行执行phantomjs加echarts-convert生成柱状图的命令,本来在本地处理的挺成功的,放到服务器上后生成的图片中的中文都是乱码,百度到的基本上都是linux上乱码,让安装字体。但我这个服务器是Windows server,我也试了把我本地的字体都复制过去安装了一遍,但是没有用。
然后我在服务器上用cmd手动执行生成图片的命令,是没有乱码的,所以只能是程序的问题。
猜测应该是echart-convert.js里面读取json文件的时候乱码了,在里面加了个输出语句,再执行命令,果然输出的是乱码,但没搞懂为什么手动执行命令即使是乱码,生成的图片还是正常的,程序调用生成的图片就是乱码
那就改一下这个js里面读取文件的方法,,,没找到怎么用js读取文件,所以就在Java里面读取js然后替换生成图表的数据,输出到一个新的js,使用这个新的js去执行命令生成图片
下图这个地方注释掉读取文件的代码,给这个options赋一个自己定义的值,在java代码里面replace就可以了
java代码是这样的,注意 之前的-infile参数就没有了,要删掉
然后就,成功了,没有乱码了