博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JpGraph中文乱码问题
阅读量:4056 次
发布时间:2019-05-25

本文共 922 字,大约阅读时间需要 3 分钟。

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; 
   } 

转载地址:http://yflci.baihongyu.com/

你可能感兴趣的文章
医疗行业运用企业云盘可以带来什么样的提升
查看>>
媒体广告业如何将内容资产进行高效地综合管理与利用
查看>>
能源化工要怎么管控核心数据
查看>>
媒体广告业如何运用云盘提升效率
查看>>
企业如何运用企业云盘进行数字化转型-实现新发展
查看>>
司法如何运用电子智能化加快现代化建设
查看>>
iSecret 1.1 正在审核中
查看>>
IOS开发的开源库
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 高可用集群部署(三)
查看>>
Golang struct 指针引用用法(声明入门篇)
查看>>
Linux 粘滞位 suid sgid
查看>>
C#控件集DotNetBar安装及破解
查看>>
Winform皮肤控件IrisSkin4.dll使用
查看>>
Winform多线程
查看>>
C# 托管与非托管
查看>>
Node.js中的事件驱动编程详解
查看>>