在PHP开发使用jpgraph类库生成统计图表时,图表的标题及坐标轴文字出现中文乱码情况,现将解决办法总结如下,仅供参考。
jpgraph的下载和配置过程省略,直接进入正题:
(1)修改jpgraph_ttf.inc文件
在jpgraph的src目录下,找到jpgraph_ttf.inc文件,编辑图中代码(在180行左右),注释掉原有内容,直接返回$aTxt。
elseif( $aFF === FF_SIMSUN ) {
//Do Chinese conversion
// if( $this->g2312 == null ) {
// include_once 'jpgraph_gb2312.php' ;
// $this->g2312 = new GB2312toUTF8();
// }
//return $this->g2312->gb2utf8($aTxt);
return $aTxt;
}
(2)下载simsun.ttf格式文件
自行下载simsun.ttf文件后,放置在jpgraph目录下的src/fonts文件夹里,命名为"FF_SIMSUN.ttf"。
(3)修改jpgraph_legend.inc文件
在jpgraph的src目录下,找到jpgraph_legend.inc文件,编辑图中代码,将"FF_DEFAULT"替换为"FF_SIMSUN"。此处注意:变量名要与步骤二中的文件名一致。
class Legend {
public $txtcol=array();
//public $font_family=FF_DEFAULT,$font_style=FS_NORMAL,$font_size=8; // old. 12
public $font_family=FF_SIMSUN,$font_style=FS_NORMAL,$font_size=8; // old. 12
修改完毕,在生成图表时,可直接引用中文并设置其格式,例如:
$graph->title->Set('销量统计');//标题内容
$graph->title->SetFont(FF_SIMSUN, FS_BOLD, 15); // 标题格式