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. Maven+SpringMVC+Mybatis整合入门Demo

    1 数据库准备 (1)建立一个名为mytest的数据库 (2)创建表 CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT ...

  2. 【Python】装饰器实现日志记录

    好的日志对一个软件的重要性是显而易见的.如果函数的入口都要写一行代码来记录日志,这种方式实在是太低效了,但一直没有找到更好的方法.后来用python写一些软件,了解到python的装饰器功能时,突然人 ...

  3. spfile 和用户环境变量 和export

    RAC数据库环境变量设置 [oracle@rac1 ~]$ sqlplus / as sysdba  SQL*Plus: Release 10.2.0.1.0 - Production on Fri ...

  4. Window下使用Xshell连接VirtualBox中CentOS SSH最佳实践

    网上已经有非常多讲怎样连接VMware的文章.可是针对一些可能遇到的细节没有讲全. 这里会有一个非常 实际的样例,附带全部软件的链接,保证成功. 最佳实践什么的都是骗人的. 1.安装VirtualBo ...

  5. poj 2236 Wireless Network 【并查集】

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16832   Accepted: 706 ...

  6. PHP多文件上传代码练习

    HTML表单: <html> <head><title>upload file</title> <meta http-equiv="Co ...

  7. LinkedIn架构这十年

    原文: A Brief History of Scaling LinkedIn 2003年是LinkedIn元年,公司成立的目标是连接你的个人人脉以获得更好的的工作机会.上线第一周才有2700个会员注 ...

  8. unable to connect to ssl://gateway.sandbox.push.apple.com:2195 错误

    使用APNS 搭建苹果推送服务器错误:unable to connect to ssl://gateway.sandbox.push.apple.com:2195 错误 1:检查你的服务器的端口 21 ...

  9. MVC 强类型传值Model。和弱类型传值ViewData[&quot;&quot;]。及用EF进行增删查改(母版页的使用)

    <1> 控制器 </pre><pre name="code" class="csharp">using MvcTest.Mo ...

  10. LoadRunner访问Mysql数据库(转)

    这是很久以前编写的一个测试案例,那时是为了检查大量往Mysql数据库里插入数据,看一下数据库的性能如何?服务器是否会很快就被写满了. 前期的准备工作:Mysql 数据库搭建,LoadRunner,li ...