JpGraph中文乱码问题

  JpGraph中文乱码问题
JpGraph是一个PHP的图形类库,可以方便地生成各种柱状图,饼图,折线图等等,而且还可以方便地加文字。但是,中文的情况就稍微麻烦了一点。在JpGraph中默认是要把字符串转成utf8的,但是如果你的文件本身就是utf8的,并且要用中文字体,它还会转一遍,结果多转了一次,就会出现乱码。
除了编码问题,还有就是字体问题。为了试验中文显示,专门拷了一个simsun.ttc过来是,在代码里用FF_SIMSUN就可以正确显示中文,但是如果改用自己设置的FF_CHINESE,也就是uming.ttf,就又乱码了,而且和simsun.ttf乱码时的不一样。 后来发现FF_CHINESE和FF_BIG5是一样,是繁体字体,所以和用FF_SIMSUN的乱码还不一样。

解决以上问题的方法也就是传递正确的中文字符串给JpGraph,所以可以把字符串先转成gb2312的,这样JpGraph就可以正确转换了。当然,这个方法比较麻烦,每次都需要,还可以直接修改jpgraph_ttf.inc.php,我用的是2.2版本的,大概在99到106行之间的:

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);
    }
注释掉已有代码,直接返回$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;
    }  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhou2002/archive/2007/11/26/1902294.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值