pChart 图表中文显示问题

WBOY
Freigeben: 2016-06-23 13:53:13
Original
1627 Leute haben es durchsucht

项目需要,图表显示数据,个人能力有限,

 /* CAT:Bar Chart */ header("content-type:text/html; charset=utf-8"); /* pChart library inclusions */ include("class/pData.class.php"); include("class/pDraw.class.php"); include("class/pImage.class.php"); /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(150,220,300,250,420,200,300,200,100),"test"); $MyData->setAxisName(0,"Hits"); $MyData->addPoints(array("1月","2月","3月","4月","5月","6月","7月","8月","9月"),"Months"); $MyData->setSerieDescription("Months","Month"); $MyData->setAbscissa("Months"); /* Create the pChart object */ $myPicture = new pImage(700,230,$MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Add a border to the picture */ $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100)); $myPicture->drawGradientArea(0,0,700,230,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20)); $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0)); /* Set the default font */ $myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6)); /* Define the chart area */ $myPicture->setGraphArea(60,40,650,200); /* Draw the scale */ $scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE); $myPicture->drawScale($scaleSettings); /* Write the chart legend */ $myPicture->drawLegend(580,12,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); /* Turn on shadow computing */  $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); /* Draw the chart */ $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $settings = array("Surrounding"=>-30,"InnerSurrounding"=>30); $myPicture->drawBarChart($settings); ob_clean();  //关键代码,防止出现'图像因其本身有错无法显示'的问题。Header("Content-type: image/PNG");  /* Render the picture (choose the best way) */ $myPicture->autoOutput("examples/pictures/example.drawBarChart.simple.png");
Nach dem Login kopieren

怎么把 $MyData->addPoints(array(150,220,300,250,420,200,300,200,100),"test");的字符串test显示为中文,怎么把 $MyData->setAxisName(0,"Hits");显示中文,比如 $MyData->setAxisName(0,"套");。。


回复讨论(解决方案)

直接中文写上去不行吗?

直接中文写上去不行吗?

不行啊,直接什么都没有。

注释掉 header("content-type:text/html; charset=utf-8");

注释掉 header("content-type:text/html; charset=utf-8");

我开始没有的,然后后面加上去的,也没用啊,这不是乱码,只是不显示啊。。

是最新版的吗?
待会下一个看看

1、header 是不要的,因为你是以图片方式输出
2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体
3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的

是最新版的吗?
待会下一个看看

是啊,是最新的,老版本也是这个问题,所以我索性用最新版本的了。谢谢老徐。。我在跟源码,慢慢研究。。求点拨

1、header 是不要的,因为你是以图片方式输出
2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体
3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的

你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体,就是我这个选错啦?$myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6));我改改去。。

1、header 是不要的,因为你是以图片方式输出
2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体
3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的

该用哪种字体呢?我用其他字体文件就是显示乱码,我定义了文体编码,没用,然后也用转码函数,也没用,怎么回事呢!?

假定你的服务器是 windows 系统,且程序是 gbk 编码的

function bm($ar) {  if(! is_array($ar)) return iconv('gbk', 'utf-8', $ar);  foreach($ar as &$v) $v = iconv('gbk', 'utf-8', $v);  return $ar;} /* CAT:Bar Chart */ /* pChart library inclusions */ include("Plugin/pChart2.1.4/class/pData.class.php"); include("Plugin/pChart2.1.4/class/pDraw.class.php"); include("Plugin/pChart2.1.4/class/pImage.class.php"); /* Create and populate the pData object */ $MyData = new pData(); $MyData->addPoints(array(150,220,300,250,420,200,300,200,100), bm("测试")); $MyData->setAxisName(0, bm("套")); $MyData->addPoints(bm(array("1月","2月","3月","4月","5月","6月","7月","8月","9月")),"Months"); $MyData->setSerieDescription("Months","Month"); $MyData->setAbscissa("Months"); /* Create the pChart object */ $myPicture = new pImage(700,230,$MyData); /* Turn of Antialiasing */ $myPicture->Antialias = FALSE; /* Add a border to the picture */ $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100)); $myPicture->drawGradientArea(0,0,700,230,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20)); $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0)); /* Set the default font */ $myPicture->setFontProperties(array("FontName"=>"c:/windows/fonts/simhei.ttf","FontSize"=>6)); /* Define the chart area */ $myPicture->setGraphArea(60,40,650,200); /* Draw the scale */ $scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE); $myPicture->drawScale($scaleSettings); /* Write the chart legend */ $myPicture->drawLegend(580,12,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); /* Turn on shadow computing */  $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); /* Draw the chart */ $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $settings = array("Surrounding"=>-30,"InnerSurrounding"=>30); $myPicture->drawBarChart($settings); ob_clean();  //关键代码,防止出现'图像因其本身有错无法显示'的问题。Header("Content-type: image/PNG");  /* Render the picture (choose the best way) */ $myPicture->autoOutput("examples/pictures/example.drawBarChart.simple.png");
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!