[PHP-users 35550] Re: Jpgraphを使った日本語データの文字化け
Michiyoshi Buniu(DreamLink)
buniu @ dream-link.jp
2011年 4月 21日 (木) 20:04:23 JST
こんばんは。豊丹生と申します。
最近ちょうどJpGraphをやっていたので、
同じ現象かと思いメールします。
全てにおいてそれぞれフォントが正しくセットされないと
日本語はUTF-8にしていても文字化けするようです。
タイトルの場合は
> $graph->title->SetFont(FF_GOTHIC,FS_NORMAL); // 日本語が出ました
ですが、
X軸のタイトルの場合は
$graph->xaxis->title->SetFont(FF_GOTHIC, FS_NORMAL, 10);
Y軸のタイトルの場合は
$graph->yaxis->title->SetFont(FF_GOTHIC, FS_NORMAL, 10);
凡例の場合は
$graph->legend->SetFont(FF_GOTHIC, FS_NORMAL);
などです。
違ってたらすみません。参考になれば幸いです。
> -----Original Message-----
> From: php-users-bounces @ php.gr.jp
> [mailto:php-users-bounces @ php.gr.jp] On Behalf Of ram
> Sent: Thursday, April 21, 2011 5:34 PM
> To: PHP-users ML
> Subject: [PHP-users 35547] Jpgraphを使った日本語データの文字化け
>
> こんにちは。
> WindowsServerからAS400への認証は、皆様にヒントを頂いたおかげでなん
> とかな
> りそうなので、
> 本題であるPHPでの作りこみにはいっています。
>
> サンプル等を参考にしながら、なんとかMysqlに接続して、JpGraphを使っ
> て
> グラフを出すところまでたどり着きました。
> サンプルに入っている groupbarex1.phpをそのまま使ってたので、
> セットする配列の値をmysqlでfetchした結果をセットするところを変更し
> ただけ
> なので、
> X軸要素以外は思うように表示されています。
>
> ここで判らないのが、日本語の文字化けです。
> php.iniの書き換えや、フォントの指定なので、タイトルは日本語に出すこ
> とが
> できましたが、
> $graph->title->Set('グラフを日本語化する');
> $graph->title->SetFont(FF_GOTHIC,FS_NORMAL); // 日本語が出ました
>
> X軸の要素となるMysqlから取得した日本語データがどうしても文字化けし
> てしま
> うのです。
> phpのソースもutf-8で保存してあります。
> mysqlのデータベースはutf-8で作成してあるため、そのまま表示できると
> 思った
> のですが、
> わざわざエンコードもしてみましたが結果は同じです。
> $jval=mb_convert_encoding($jval, 'UTF-8', 'auto');
>
> mysqlのほうのメーリングリストに出すべきなのかもしれませんが、
> 解決策もしくはヒントを頂ければありがたいです。
> よろしくお願い致します。
>
> 初穂太郎
>
> <?php
> require_once ('jpgraph/jpgraph.php');
> require_once ('jpgraph/jpgraph_bar.php');
>
> //配列 $dataxに mysqlで取得した日本語のX軸要素
> //配列 $datay1〜3に mysqlで取得した値が入っています
> // sample groupbarex1.phpをそのまま使っているのでX軸要素以外はそ
> のまま
> 表示されています
>
> $graph = new Graph(450,400,'auto');
> $graph->SetScale("textlin");
> $graph->SetShadow();
> foreach( $datax as $jval ){
> $jval=mb_convert_encoding($jval, 'UTF-8', 'auto'); }
> $graph->xaxis->SetTickLabels($datax);
> $graph->xaxis->SetFont(FF_GOTHIC,FS_NORMAL); // 変更
> $graph->title->Set('グラフを日本語化する');
> $graph->title->SetFont(FF_GOTHIC,FS_NORMAL); // 日本語が出ました
> $bplot1 = new BarPlot($datay1);
> $bplot2 = new BarPlot($datay2);
> $bplot3 = new BarPlot($datay3);
> $bplot1->SetFillColor("orange");
> $bplot2->SetFillColor("brown");
> $bplot3->SetFillColor("darkgreen");
> $bplot1->SetShadow();
> $bplot2->SetShadow();
> $bplot3->SetShadow();
> $bplot1->SetShadow();
> $bplot2->SetShadow();
> $bplot3->SetShadow();
> $gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
> $gbarplot->SetWidth(0.6);
> $graph->Add($gbarplot);
> $top = 80;
> $bottom = 30;
> $left = 50;
> $right = 30;
> $graph->Set90AndMargin($left,$right,$top,$bottom);
> $graph->Stroke();
> ?>
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内