1. 云栖社区>
  2. PHP教程>
  3. 正文

【原创】jpgraph中文乱码问题的解决

作者:用户 来源:互联网 时间:2017-12-01 17:30:50

图片中文

【原创】jpgraph中文乱码问题的解决 - 摘要: 本文讲的是【原创】jpgraph中文乱码问题的解决, php jpgraph库非常强大,可以在后台生成图片 后台生成在需要导出图表型报告的时候非常有用,当然,前端的可视化还是要用highcharts/echarts/anycharts等类库 比较麻烦的是中文乱码问题,有3个地方乱码: le

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

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

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

  • legend
  • setStickLabels
  • title

【原创】jpgraph中文乱码问题的解决

【原创】jpgraph中文乱码问题的解决

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

  • 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源码的地方,将 FFDEFAULT 改为 FFSIMSUN 即可

后来证明果然是这样,而且方便的是 这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)
  • 修改 jpgraphttf.inc.php, $aFF === FFSIMSUN 则直接返回 $aTx

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

【原创】jpgraph中文乱码问题的解决

【原创】jpgraph中文乱码问题的解决

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片 中文 ,以便于您获取更多的相关知识。

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

开发者常用软件,超百款实用软件一站式提供