php jpgraph库非常强大,可以在后台生成图片

后台生成在需要导出图表型报告的时候非常有用,当然,前端的可视化还是要用highcharts/echarts/anycharts等类库

比较麻烦的是中文乱码问题,有3个地方乱码:

  • legend
  • setStickLabels
  • title

先说明下我的环境和版本:

  • Ubuntu12.04
  • PHP 5.3.10-1
  • Jpgraph 3.5.0b1
  • 文件fileencoding=utf-8

Legend 乱码

  //jpgraph_legend.inc.php
3 class Legend {
2 public $txtcol=array();
1 //public $font_family=FF_DEFAULT,$font_style=FS_NORMAL,$font_size=8; // old. 12
0 public $font_family=FF_SIMSUN,$font_style=FS_NORMAL,$font_size=8; // old. 12

记得下载一份 simsun.ttc 放到 /usr/share/fonts/truetype

   //jpgraph_ttf.inc.php
9 elseif( $aFF === FF_SIMSUN ) {
8 // Do Chinese conversion
7 /*
6 if( $this->g2312 == null ) {
5 include_once 'jpgraph_gb2312.php' ;
4 $this->g2312 = new GB2312toUTF8();
3 }
2 return $this->g2312->gb2utf8($aTxt);
1 */
0 return $aTxt;
1 }

原创文章,转载请注明:http://www.cnblogs.com/phpgcs/

上面的解决方法,我是参考了:

http://blog.csdn.net/yiping1980/article/details/6023144

然后后面的2个我认为就是找到title/stickLabels源码的地方,将 FF_DEFAULT 改为 FF_SIMSUN 即可

后来证明果然是这样,而且方便的是 这2个家伙都在 jpgraph.php 文件中

直接

:%s/FF_DEFAULT/FF_SIMSUN/g

就搞定了

title 乱码

  2         $this->title = new Text();
1 $this->title->ParagraphAlign('center');
0 //$this->title->SetFont(FF_DEFAULT,FS_NORMAL); //FF_FONT2, FS_BOLD
1 $this->title->SetFont(FF_SIMSUN,FS_NORMAL); //FF_FONT2, FS_BOLD

stickLables 乱码

  5 class AxisPrototype {
4 public $scale=null;
3 public $img=null;
2 public $hide=false,$hide_labels=false;
1 public $title=null;
0 public $font_family=FF_DEFAULT,$font_style=FS_NORMAL,$font_size=8,$label_angle=0;

还有个地方也有FF_DEFAULT,

  5 class DisplayValue {
4 public $margin=5;
3 public $show=false;
2 public $valign='',$halign='center';
1 public $format='%.1f',$negformat='';
0 private $ff=FF_DEFAULT,$fs=FS_NORMAL,$fsize=8;

总结:

  • 找到相关的源码(FF_DEFAULT)
  • 修改 jpgraph_ttf.inc.php, $aFF === FF_SIMSUN 则直接返回 $aTx

原创文章,转载请注明:http://www.cnblogs.com/phpgcs/

【原创】jpgraph中文乱码问题的解决的更多相关文章

  1. Rhythmbox中文乱码问题的解决

    Rhythmbox中文乱码问题的解决 Rhythmbox是Ubuntu自带的一款很优秀的音乐播放器,但是在处理中文时却不太友好,导入歌曲时中文会变成乱码 这个问题也是很好解决的. ** 1.Ctrl+ ...

  2. Sublime Text 3中文乱码问题的解决(最有效)

    Sublime Text 3中文乱码问题的解决(最有效) Sublime Text 3是很好的代码编辑器,没有之一,因为她的性感高亮代码配色,更因为它的小巧,但是它默认不支持GBK的编码格式,因此打开 ...

  3. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  4. (转)MySQL 插入数据时,中文乱码问题的解决

    MySQL 插入数据时,中文乱码问题的解决  原文:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当向 MySQL 数据库插 ...

  5. windows下mysql中文乱码, 配置解决方法

    内容源自:windows下mysql中文乱码, 配置解决方法 解决方法:打开mysql安装目录,打开my.ini文件(如果只有my-default.ini文件,先将其改名为my.ini!!!) 修改内 ...

  6. eclipse中js中文乱码问题的解决办法

    在Eclipse中编辑JS文件简直是一种折磨,但是却总是很无奈得要去适应. 这里说一下Eclipse中,编辑JS文件时候,出现中文乱码问题的解决办法. 这个问题很容易想到是文件编码的问题,因此通常是修 ...

  7. XAMPP下MYSQL中文乱码问题的解决

    XAMPP下MYSQL中文乱码问题的解决 现象描述: 安装完成XAMMP后,内置有MySQL数据库. 新建好自己的数据库后通过hibernate往表里面添加一些中文信息时全部乱码变成“??”. 问题解 ...

  8. Pycharm 输出中文或打印中文乱码现象的解决办法

    1. 确保文件开头加上以下代码: # -*- coding:utf-8 -*- 还可以加上 import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  9. get/post时中文乱码问题的解决办法

    1.文章1 最近遇到一个问题:用get方法传递中文有问题,用post没有问题. 问题简单的描述是这样的: <a href="userGroup.jsp?userGroupName=&l ...

随机推荐

  1. DevExpress TreeList使用

    using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; us ...

  2. JMeter 六:Listener

    参考:http://jmeter.apache.org/usermanual/listeners.html Listener是用来展示Sampler结果的元件. 结果可以被展示在树.表格.图表或者简单 ...

  3. wamp server php环境绑定域名

    思路: 用花生壳做动态域名解析 用wamp server 在本机上做一个 php web server; 这样就可以让一台内网电脑做一个测试用的服务器: 一:wamp server php环境绑定域名 ...

  4. Andorid上拉加载更多的几种实现方式

    1.前言 Andriod中上拉加载更多的效果随处可见,因为一次性要展现的数据太多信息量太大的话,给用户的体验就很差(加载慢,界面卡顿.流量消耗大等),而加载更多可以控制每次加载条目的数量以达到快速加载 ...

  5. AppIcon尺寸

  6. 【Linux】通过传入变量进行数学运算

    一个简单的sum求和 #! /bin/bash ## For get the sum of tow numbers ## Writen by Qinys ## Date:2018-06-26 a=1 ...

  7. WKWebView的使用

    代码地址如下:http://www.demodashi.com/demo/13431.html 前言 最近项目中的UIWebView被替换为了WKWebView,因此来总结一下WKWebView的使用 ...

  8. win8安装Visual C++ 2015 build tools闪退解决办法

    win8安装Visual C++ 2015 build tools闪退解决办法 安装Visual Studio 2015闪退问题也同样应用此解决办法. 1.控制面板——添加删除程序——启动关闭wind ...

  9. Eclipse - JAR包制作

    Eclipse - JAR包制作细节   1.Jar包分为两种,一种是不可运行的,一种是可运行的Jar包,他们的主要区别如下:     > 不可直接运行的Jar包主要是用于给别的程序提供调用   ...

  10. HDFS原理解析(整体架构,读写操作流程及源代码查看等)

    前言 HDFS 是一个能够面向大规模数据使用的.可进行扩展的文件存储与传递系统.是一种同意文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间.让实际上是通过网络来訪问文件的 ...